MINNEAPOLIS (AP) -- Miguel Cabrera became the first player to reach 100 RBIs this season with a run-scoring single and Doug Fister pitched eight strong innings for the Detroit Tigers in an 8-4 win over the Minnesota Twins on Tuesday night.
Fister (7-7) did not allow an earned run and struck out seven to win for the third time in four starts.
The Tigers overcame a bad defensive inning to end a three-game slide. Detroit remains two games back of Chicago in the AL Central.
Josh Willingham hit his career-high 30th home run for Minnesota.
Tied at 4 in the sixth inning, Andy Dirks hit a solo home run off Brian Duensing (2-8) to put the Tigers ahead for good.
Miguel Cabrera got his 100th RBI with a seventh-inning single off Casey Fien, becoming the third player in Tigers history to collect at least 100 RBIs in five or more consecutive seasons.
Harry Heilmann did it in seven straight seasons (1923-29) and Charlie Gehringer did so in five straight (1932-36). Cabrera added an RBI double in the ninth.
In seven starts since the All-Star break, Fister is 5-1 with a 1.52 ERA and 48 strikeouts. Last year, Fister was 8-1 down the stretch for the Tigers after being acquired in a trade with Seattle.
Other than an inning where two errors led to all of Minnesota's runs, Fister retired 21 of 26, including Joe Mauer and Willingham to start the eighth before Justin Morneau doubled to center. Ryan Doumit grounded out to end the threat.
Duensing had two bad innings and he continues to struggle since joining the Minnesota rotation June 23. He allowed five runs in six innings, striking out four.
He's now 1-6 with a 6.34 ERA in eight starts overall this season. He's allowed 16 runs - 11 earned - and 29 hits in 19 innings while going 0-2 in three starts this month.
The Tigers offense gave Fister plenty of early support.
Jhonny Peralta had a two-run single in the first. Gerald Laird had an RBI triple in the second and scored on an RBI double by Austin Jackson to make it 4-0.
But the Tigers were sloppy on defense in the third inning with two errors leading to four unearned runs.
Omar Infante began the inning by misplaying a grounder by Jamey Carroll. One out and three batters later, Darin Mastroianni hit a grounder to Infante, who was unable tag Ben Revere running to second base - he singled. Infante's throw to first would have gotten Mastroianni, but Prince Fielder pulled his foot off the bag.
Fielder then threw wildly to second trying to force Revere, allowing Carroll to score. Two batters later Willingham hit a three-run home run into the bullpens.
NOTES: Willingham is the first Twins player to hit at least 30 homers in a season since Michael Cuddyer (32) and Morneau (30) in 2009. ... Fielder is hitless in his last 13 at-bats. ... He said he feels better, but Minnesota CF Denard Span missed his second straight game after injuring his shoulder trying to make a diving catch in Sunday's game. ... In a continued effort to try to find solid production from the fifth spot in the lineup, Detroit manager Jim Leyland had Peralta bat there for just the second time this season. He's batted sixth, seventh or eighth a combined 100 times. Delmon Young was in the five-hole for most of the season before Brennan Bosch was given a chance. Alex Avila batted fifth Monday.... In Wednesday afternoon's series finale, Detroit is scheduled to send Max Scherzer (11-6, 4.65) to the mound against Minnesota's Cole DeVries (2-3, 4.77).