"A good character game for us," Sandberg said.
One game remains on this fruitful West Coast trip, and the Phillies can claim a 6-4 record with a win Sunday at Chase Field.
The Phillies won a game in which they trailed by five or more runs after the sixth inning for the first time since July 24, 2012.
"It was a good team win," Cody Asche said. "That's what good teams do, find ways to win."
The contributors in the eighth were numerous. Asche pinch-hit for the pitcher with the bases loaded and socked a double that struck first-base umpire Bob Davidson. Two runs scored to tie it. Ben Revere then blooped one to center, just short enough to elude an outstretched A.J. Pollock. That pushed the Phillies ahead for good.
Carlos Ruiz reached base four more times. He dented Cahill for a run-scoring single in the eighth. Ruiz, a front-running candidate to be the league's player of the week, raised his batting average to .296 and OPS to .891.
"He's just clutch," Sandberg said.
Antonio Bastardo, Mike Adams, and Jonathan Papelbon preserved the rally. The bullpen did not perform without drama; a 3-minute, 36-second review in the ninth inning erased the potential tying run from second. Prado tried to advance on a Papelbon pitch that got past Ruiz, who fired a bullet to second. Prado overslid the bag and was eventually called out.
The relievers atoned for Lee, who was not his usual, dominating self. Lee permitted five runs (three earned) in six innings. He equaled his season walk total (two) in the span of six batters in the third inning. His only two strikeouts were against Bronson Arroyo, the opposing pitcher.
The sizable deficit was not all Lee's fault. Pollock started the first with a single to right. He dashed for second, but Lee stepped off the rubber and flipped to Howard. Shortstop Jimmy Rollins could not catch Howard's perfect throw, and Pollock advanced. It marked the first Phillies error in 10 games.
A fly ball that Paul Goldschmidt hit to right should have ended that first inning. Instead, it was a sacrifice fly. Arizona, afforded an extra out, then strung three singles together for another run.
"They got to me early," Lee said. "I don't know what it was. It was one of those days."
Lee allowed four runs total in his previous four starts for a 1.20 ERA. But the Diamondbacks scored one in the second and two more in the third. They gashed Lee for eight hits in three innings. He retired the last 10 batters he faced. By then, though, the wound was large.
It looked insurmountable for the first six innings. Arroyo lugged a 9.50 ERA into Saturday. He failed to throw two scoreless innings in any of his first four starts but held the Phillies to six shutout innings before two scored in the seventh.
Arizona did not have its closer, Addison Reed, or primary setup man, Brad Ziegler, for use. Reed appeared in three straight games before Saturday. That forced Cahill, who posted a 9.17 ERA in four starts before being shifted to the bullpen, into an important situation. The Phillies struck.
"It's embarrassing," Cahill said. "Bronson threw a great game. I should be able to come and get three outs without letting them take the lead back."