CLEVELAND -

Aaron Cunningham bunted home the go-ahead run with a suicide squeeze as the Cleveland Indians beat Detroit 3-2, moving within three games of the AL Central-leading Tigers on Tuesday night.

Travis Hafner tripled with one out in the seventh inning off Doug Fister (4-7) and Lou Marson ran for him.

Marson took off running as Cunningham, a defensive replacement hitting .175, dropped a bunt in front of the plate. Fister quickly got the ball and tried to shovel it to catcher Alex Avila. It rolled away, Marson scored, and Cunningham took second on the error.

Miguel Cabrera's two-run homer off reliever Joe Smith (6-2) tied it at 2 in the top half.

Chris Perez pitched the ninth for his 28th save in 30 chances.