Adam Plutko (4-3) gave up four runs on nine hits over six innings.
“This one’s going to sting for me for a while,” said Plutko, who was cruising through the first three innings before the Twins broke through in the fourth to take the lead.
With two outs, Mitch Garver doubled, Luis Arraez tripled and C.J. Cron followed with a single to make it 2-0.
Kepler led off the fifth with his 32nd homer of the season, a line drive to left that made the score 3-0.
Puig got the Indians on the board with a two-out solo home run in the seventh, a 455-foot drive off reliever Sergio Romo. But Gonzalez got that back in the bottom half of the inning with a solo shot of his own.
Arraez’s RBI triple in the fourth gave the Twins their first lead in 40 innings. Their last victory came on Miguel Sanó’s walk-off home run against the Braves on Monday. They lost their next four — two to Atlanta and the first two against Cleveland — without leading in any of the games. The Twins trailed 11-0, 7-0, 4-0 and 6-0 in those four losses.
Ehire Adrianza went 2 for 2 with a walk, but his two biggest contributions were on the defensive end, where he spelled Jorge Polanco at shortstop. First, with Greg Allen on second and two outs in the second, Adrianza made a diving stop of Tyler Naquin’s grounder up the middle to keep Allen from scoring. Odorizzi then retired Francisco Lindor on a weak grounder to first to end the inning and preserve the scoreless tie.
“I think the play that AD made changed the game,” Odorizzi said. “It kept the ball in the infield, it kept it scoreless and we know how it played out from there. Little things like that are the things that propel you through outings because there’s a lot of things that go unnoticed by the common person watching the game.”
Then in the eighth, after Kipnis led off with a single, Allen hit a hot shot to Cron at first base. Cron’s throw to second was a bit high, but Adrianza caught it on the run, stepped on the base and fired back to first in one motion to complete the double play. Rogers went on to retire the final for Cleveland hitters to close out the win.
Indians: RHP A.J. Cole was placed on the 10-day IL with a right shoulder impingement. RHP Hunter Wood was recalled from Triple-A Columbus to take his spot on the roster.
Twins: Manager Rocco Baldelli said he expects DH Nelson Cruz (ruptured tendon in wrist) and RHP Michael Pineda (right triceps strain) to travel with the team on next week’s road trip to Milwaukee and Texas. Cruz is scheduled to see a specialist in New York on Monday. Pineda threw a bullpen session on Saturday.
Indians: RHP Aaron Civale (1-1, 0.75 ERA) will make his third major league start for Cleveland in the season finale Sunday afternoon. Civale threw six scoreless innings against Detroit in his debut on June 22, then gave up one run in six innings in a 1-0 loss to Texas on Aug. 5.
Twins: RHP Jose Berrios (10-6, 3.24) is looking to bounce back from the worst start in his career. He allowed nine earned runs in 5 2/3 innings against the Braves on Tuesday. He’s 2-0 with a 1.93 ERA in three starts against Cleveland this year.
More AP baseball: https://apnews.com/MLB and https://twitter.com/AP_Sports