DETROIT -- Rick Porcello isn't worried about pitching in a pennant race.
He's just concerned about how his mother will take it.
"You look at him, and you realize he was striking out high-school kids two years ago," Tigers catcher Gerald Laird said. "He just gets better and better every time he pitches."
Porcello (12-8) has allowed two or fewer runs in six of his last seven starts, and has now won more games than any Tigers pitcher before the age of 21.
"This is a lot of fun," said Porcello, who spent last season at Single-A Lakeland. "This is what baseball is all about."
Porcello won't show that much enthusiasm in his phone call home, though.
"I can't talk about baseball with my mom," he said. "She's way too emotional and gets too excited."
The Tigers, who now lead the Twins by 4½ games in the AL Central, were aided by five Cleveland errors, the most they had committed in a game since 1998.
"It's starting to feel more and more like we are in the driver's seat," Laird said. "It's September and everyone is talking about the teams chasing us, not the other way around."
Laird said the Tigers were inspired by Chicago's ninth-inning rally to beat Minnesota earlier in the day.
"We came in early today, saw the Twins lose, and then we went out and took advantage," he said. "Cleveland gave us four or five outs in a couple innings, and we didn't let them off the hook."
Three Tigers relievers finished, with Fernando Rodney pitching the ninth for his 31st save in 32 tries. Cleveland had runners on the corners with one out in the final inning, but Jhonny Peralta finished a miserable night by grounding into a game-ending double play. Peralta also committed three of Cleveland's errors, including two on a single fourth-inning play.
Aaron Laffey (7-4) took the loss, allowing four runs, two unearned, in 6 1/3 innings.
"You have to give Laffey a lot of credit," Indians manager Eric Wedge said. "We didn't play very well behind him -- that's pretty obvious with five errors -- and he never gave in to it. For him to give us a chance to tie that game in the ninth inning is remarkable.
The teams traded single runs in the first inning. Peralta hit a two-out RBI single in the top of the inning and Miguel Cabrera tied the game with a sacrifice fly.
Porcello helped himself in the third inning, snagging Michael Brantley's leadoff liner and then picking off Grady Sizemore to end the inning.
"As soon as that ball came off the bat, I knew it was coming right at me," Porcello said. "I just tried to turn out of the way, and the ball went into my glove. That was a lot more luck than skill."
Detroit took advantage of Cleveland's poor defense to go ahead 3-1 in the fourth. Cabrera led off with a walk and took second on Marcus Thames' single.
Brandon Inge then grounded into the hole and Peralta misplayed the ball, then threw wildly to second. Cabrera scored, with Thames taking third as Peralta was charged with two errors. Gerald Laird followed with a sacrifice fly to give the Tigers a two-run lead.
Detroit loaded the bases in the fifth, helped by another Peralta error, but Laffey struck Thames out to end the inning.
Ordonez made it 4-1 with an RBI single in the seventh, but Travis Hafner chased Porcello with a homer to lead off the eighth. The home run, though, didn't do much to change Wedge's admiration for the rookie's performance.
"We made a lot of quick outs tonight, but that was all because of the kid pitching for the other team," he said. "It's not like we were too aggressive -- he was just throwing every pitch at the knees and there was nothing we could do with them."
First-base umpire Jerry Crawford left the game after the top of the fifth inning, but returned after a half-inning. ... Dave Rozema won 11 games for the Tigers before turning 21 in August 1977. ... Hafner's homer was his 160th for the Indians, moving him within three of Ken Keltner for 10th on the franchise's career list.