Phillies manager Pete Mackanin is nearly out of ideas to stop Philadelphia's slide.
Zack Greinke won his seventh straight start, pitching three-hit ball for eight innings to lead the Arizona Diamondbacks over Philadelphia 4-1 on Saturday.
Paul Goldschmidt, Jake Lamb and Nick Ahmed hit home runs to back Greinke (10-3). Arizona has hit nine homers in two consecutive wins over Philadelphia.
Odubel Herrera homered for the Phillies, who have lost five in a row and 22 of 28.
"Yeah, I've got a few tricks left in my bag, but I'm running out," Mackanin said. "We just have to keep working hard, we can't give up, we just have to bear down and go after it. There's too many games left to panic or get concerned."
The Phillies have surrendered 20 home runs during their losing streak, and over that stretch, opponents have 67 hits.
"All we can do is continue to teach, continue to work and keep the guys positive," Mackanin said. "That's the only way out of this."
Jerad Eickhoff (4-9) allowed three runs on nine hits in 5 2/3 innings. He struck out six and walked one.
Greinke kept making good on the $206.5 million, six-year deal he signed with Arizona in the offseason. After a slow start, the three-time All-Star and former Cy Young Award winner has a 1.90 ERA during his winning streak.
The key has been command.
"I feel like I've been throwing more quality strikes instead of just throwing strikes," Greinke said. "It's more where I want it to be. It's tough for the hitters to lay off, but tough for them to hit at the same time."
Greinke struck out six and walked one.
"That's a good word: dominant," Arizona manager Chip Hale said. "He understands his stuff and understands the team he's pitching against."
Greinke was lifted after just 94 pitches, as Hale didn't want to overextend his ace after Greinke threw 119 pitches in his last outing.
"I felt pretty good but just didn't want to push it after the last start," Greinke said. "And we have one of the better closers in the game."
Brad Ziegler closed for his 14th save of the season and 42nd straight dating to May 2015.
Herrera homered with one out in the first to put Philadelphia ahead.
"Just make good pitches the rest of the game," Greinke said. "That was a bad pitch. I can't do that much more or they'll score runs."
Greinke retired 17 of the next 18 batters.
"The whole texture of the game changes if we have more offense and we threaten a little bit more, and we're just not doing that," Mackanin said.
Arizona took the lead with three runs in the fifth.
Ahmed, who had three hits, tied it with a homer. Goldschmidt hit his 14th homer with two outs, a two-run drive that extended his hitting streak to 12 games.
Lamb hit his 13th homer in the seventh off Severino Gonzalez.
A double by Jimmy Paredes put runners at second and third with one out in the Phillies seventh. Greinke came back from a 3-0 count to strike out Maikel Franco with a 77-mph curveball before getting Carlos Ruiz to line out.
The Diamondbacks have won five of seven while improving to 18-14 on the road. They are 13-25 at home.
Goldschmidt finished 2 for 5 and is batting .408 during his hitting streak.
"He's raking," Lamb said. "Everyone knew it was just a matter of time. It's fun to see."
Prior to homering, Lamb stepped out of the box and took a walk to regroup. He wasn't injured and didn't have an equipment issue.
He said he was just embarrassed after Eickhoff blew a fastball by him.
"That's called a `bayou' pitch because it goes right by you," he said.
Arizona RHP Archie Bradley (2-3, 5.66) opposes Phillies RHP Zach Eflin (0-1, 27.00) on Sunday in the third game of the four-game set.