CLEVELAND (AP) -- Jason Kipnis had three hits and scored the go-ahead run in the eighth inning as the Cleveland Indians beat the Detroit Tigers 4-2 Wednesday night.
Kipnis singled off the glove of Phil Coke (1-1) with one out and took third on a double into the left-field corner by Asdrubal Cabrera.
Travis Hafner then grounded to first baseman Prince Fielder, whose low throw handcuffed catcher Gerald Laird for an error as Kipnis dove into the plate to score. Carlos Santana's sacrifice fly scored Cabrera.
Vinnie Pestano (2-0) got out of a bases-loaded, none-out jam in the top half.
Chris Perez pitched a perfect ninth for his 15th consecutive save after blowing a lead in the season opener April 5.
Cleveland has won two straight over the Tigers after Detroit took the final 10 meetings a year ago. The Indians lead the AL Central, while the third-place Tigers have lost five of seven and dropped to five games back.
Detroit stranded 10 runners and twice left the bases jammed.
Joe Smith got Miguel Cabrera to ground out to end the seventh with the bases loaded. In the eighth, Pestano struck out Jhonny Peralta, got Ramon Santiago on a weak grounder that forced a runner at home, and fired a called third strike past pinch-hitter Alex Avila on a 3-2 count.
That extended the right-hander's team relief record to 23 straight outings with at least one strikeout.
Hafner's two-run homer in the sixth off Tigers starter Doug Fister tied it at 2.
The Tigers took a 2-0 lead in the sixth off Indians starter Zach McAllister when the ball bounced their way.
Quintin Berry, called up from Triple-A Toledo and making his big-league debut at age 27, got his first career hit on a slow roller between first and second. Second baseman Kipnis wasn't going to get the speedy Berry on the tough play, but when the ball rolled past him, Berry hustled to second for a double.
Andy Dirks followed with a line drive directly at right fielder Shin-Soo Choo, who broke in, then saw it go over his head for an RBI double. Dirks took third on Cabrera's flyout to right -- then scored on a close play to make it 2-0.
With the infield in, Cabrera dove to stop Fielder's hard grounder to shortstop. Asdrubal Cabrera threw home from his knees. Dirks, running on contact, slid in as catcher Santana took the throw in the dirt and applied a late tag.
In the fourth, Miguel Cabrera's aggressiveness on the bases cost Detroit a possible run. He doubled, then tagged up and took off for third on a Fielder's fly ball to left-center. Center fielder Michael Brantley's throw beat Cabrera by 5 feet for a double play. Delmon Young followed with a line single to center.
McAllister gave up two runs and eight hits over 6 1-3 innings in his fourth start since being called up from Triple-A Columbus on May 12.
Fister gave up five hits and two runs over 6 2-3 innings. The Tigers have scored nine runs in his five starts.
His last win was over Cleveland on Sept. 26, completing a sensational stretch for the right-hander. He went 7-0 with a 0.65 ERA in his last eight starts of 2011 to help the Tigers win the AL Central.
NOTES: Tigers hitting coach Lloyd McClendon was ejected by plate umpire Jerry Meals for yelling from the dugout in the bottom of the seventh. ... Indians 3B Jack Hannahan was available to play for the first time since May 13, but missed his ninth straight game. He said he's nearly recovered from a sore back. ... Indians RHP Josh Tomlin, on the disabled list with wrist tendinitis since May 8, is scheduled to threw a 50-pitch bullpen session Thursday. ... Barry started in center as Austin Jackson missed his sixth game with an abdominal strain. Manager Jim Leyland said he's concerned that Jackson, batting .331 with 29 runs in 36 games, could end up on the disabled list.