The Arizona Diamondbacks rallied after a shaky start.
They couldn't finish it off, unable to add on runs or stop one of baseball's best hitters when they needed to.
Cahill labored in his second start since returning to the rotation and Miguel Cabrera hit a hope-ending three-run homer in the eighth inning, sending the Diamondbacks to an 11-5 loss to the Detroit Tigers on Wednesday.
"We have been great about that, no question about it," Diamondbacks manager Kirk Gibson said of coming back. "They felt us coming and we had a good attitude and put up some good at-bats."
Detroit had more productive ones.
Austin Jackson had the first one, a three-run double in the fourth inning as the Tigers roughed up Cahill (1-7) for seven runs in four innings.
Arizona clawed its way back against Anibal Sanchez (7-4), though, scoring three runs off him in the fifth and two more over the next two innings.
With Tigers clinging to a two-run lead with two on and no outs in the seventh inning, Joba Chamberlain replaced Sanchez and needed one pitch to escape a jam he created by Sanchez.
That set the stage for Cabrera in the eighth and the Triple Crown winner came through, fouling off a couple of pitches from Matt Stites before hitting his 15th homer off the foul pole in left.
Alex Avila had three RBIs and Rajai Davis had three of Detroit's 13 hits to improve the best road record in baseball to 30-17.
"The hitters, they did their job," Sanchez said. "They give me enough runs to get the win."
Sanchez followed up a strong start against Kansas City with a shaky one against Cleveland, allowing four runs in six innings his last start.
The right-hander has been good on the road this season and was sharp early against the Diamondbacks with a big lead.
That changed in the fifth inning, when Gerado Parra and Martin Prado hit consecutive doubles then Gregorius splashed a two-run homer into the pool in right-center to cut Detroit's lead to 7-3.
Parra had a run-scoring single in the sixth inning and David Peralta added another in the seventh to cut Detroit's lead to 7-5. Arizona had two on with no outs after that, but Sanchez got Aaron Hill to fly out and Chamberlain induced Paul Goldschmidt into an inning-ending double play on his lone pitch in the inning.
Sanchez allowed five runs on 11 hits and struck out four in 6 1-3 innings.
"His stuff is good, I just think when he's missed his spots, they've hit it," Tigers manager Brad Ausmus said.
Cahill had a decent outing after being called up from the minors his last start, allowing three runs on four hits in five innings of a no-decision against the Chicago Cubs.
His second start didn't go so well.
Avila hit a two-run single off Cahill in the second inning and the Tigers poured it on in the fourth, scoring five runs with the help of an error by Hill at second base. Avila had a sacrifice fly for the only earned run in the inning and Jackson had the big hit, a three-run double that got past left fielder Mark Trumbo's diving attempt.
Cahill allowed seven runs — three earned — on eight hits to remain winless in six starts this season.
"Hitting is contagious and they got on a roll," Cahill said.
Arizona managed to rally, but Cabrera put the game out of reach with one big swing.
NOTES: Tigers RF Torii Hunter was given a day off despite swinging a hot bat. He has hit .381 with five homers, 12 runs and 20 RBIs over the past 16 games. OF J.D. Martinez tweaked his quadriceps against Arizona on Tuesday and was held out of the lineup. ... Gregorius' homer was the 47th all-time to land in the Chase Field pool. ... The Diamondbacks have a day off before starting a three-game series at Philadelphia behind right-hander Wade Miley. Detroit starts a four-game series at the Los Angeles Dodgers on Thursday with right-hander Max Scherzer on the mound.