Ryan Webb relieved Koehler and pitched 1 2-3 scoreless innings and Chad Qualls followed with a perfect eighth. Steve Cishek pitched a scoreless ninth for his 29th consecutive save and 34th in 36 opportunities.
"It was a great way to go out," said Koehler, who battled a stomach virus before the game. "I've been real pleased the way I've been throwing the ball the last couple of outings. I only feel the experience I've had here is going to help me in the future."
The Tigers scored their first run on Austin Jackson's run-scoring single in the fifth. Koehler struck out Andy Dirks to end the Tigers' threat.
Detroit's Jose Alvarez (1-5) lasted 2 2-3 innings in his return to the starting rotation after eight relief appearances. He allowed three runs and two hits, walking two and striking out three in his first start since Aug. 16.
Earlier Friday, the Marlins fired Larry Beinfest, the team's president of baseball operations. Beinfest had overseen player personnel for the Marlins since 2002.
NOTES: Former Marlin Miguel Cabrera received a warm ovation before his first at-bat in the first inning and after he was removed for a pinch runner following his leadoff single in the sixth. Cabrera, who went 2 for 3, played with the Marlins the first five seasons of his career before being traded to Detroit in 2008. ... 1B Prince Fielder was replaced by Don Kelly after he walked to lead off the second. ... The roof at Marlins Park was open for the 14th time in the season..Marlins 3B Placido Polanco reached over the railing and landed in the stands to catch Don Kelly's pop-up in the eighth inning.