CLEVELAND (AP) -- Travis Hafner took a mighty swing, let out a yell, then tossed his bat and admired his towering shot deep into the right-field seats for a walkoff grand slam.
The blast capped Cleveland's five-run rally in the ninth inning that gave the Indians a 5-4 win over the Toronto Blue Jays on Thursday night.
"It's awesome, there's nothing like it." Hafner said of the feeling he had. "It's the most fun you can have on a baseball field."
Hafner hit the first pitch from Luis Perez (1-2) for Cleveland's second walkoff slam of the season. Carlos Santana also did it to beat Detroit 9-5 on April 29.
"That's as hard as I can hit it," Hafner said of his 12th career slam that made a winner of Tony Sipp (4-1), who yielded Jose Bautista 's 29th homer in the eighth to give Toronto what seemed like a comfortable 4-0 lead.
Cleveland rallied for its 20th comeback win and did it without third baseman Lonnie Chisenhall . He left after being hit with a pitch on his right cheekbone in the second inning by Toronto starter Carlos Villanueva . The team announced that the rookie suffered a facial contusion and will be examined further Friday.
The Indians loaded the bases on a single, double and walk against Frank Francisco , who didn't get an out. The reliever went off on reporters following the loss. He asked them if they wanted to talk and when they began to approach his locker, he unleashed a string of profanities and walked away.
Blue Jays manager John Farrell was more politely succinct.
"That's a gut-wrenching loss," Farrell said.
Left-hander Perez replaced Francisco and struck out Michael Brantley before Asdrubal Cabrera lined an RBI single to left to make it 4-1.
That brought up Hafner, who earlier this year hit a three-run walkoff to beat Seattle 5-4 on May 13.
This time, Cleveland's designated hitter delivered the Indians' first walkoff slam when trailing by exactly three runs in 38 years - since Ron Lolich did it on April 22, 1973.
"That was an amazing comeback," Indians manager Manny Acta said. "Before that, it was eight of the most boring innings all season. I thought it would be a wasted night."
Hafner said Brantley gave him a scouting report on Perez.
"He said (Perez's) fastball had a lot of sink, so I was looking for something up," Hafner said. "I wanted to try and do it early."
Brantley's strikeout made lefty hitters only 11 of 57 (.193) against Perez this year before Hafner unloaded.
Toronto scored three runs in four innings off Zach McAllister , making his major league debut.
Meanwhile, Villanueva allowed six hits in his ninth start since being moved into the Blue Jays' rotation on May 23. He was looking to improve to 5-1 as a starter after going 8-0 in his final 84 relief appearances since a loss on Aug. 17, 2009.
"He clearly did his job," Farrell said. "Unfortunately, things came apart in the ninth."
The right-hander struck out seven and walked two. Both walks came in the first inning, when Villanueva got out of a bases-loaded jam by getting Orlando Cabrera on a routine fly ball to right field.
Nine of the Blue Jays' 11 hits came from the bottom five hitters in their order as Toronto lost for the eighth time in 11 games.
Toronto took a 1-0 lead with an unearned run in the second. Aaron Hill walked, stole second and continued to third when shortstop Asdrubal Cabrera mishandled the throw for an error. Travis Snider singled home Hill.
J.P. Arencibia and Rajai Davis got RBI singles in the fourth to make it 3-0. Arencibia's hit snapped an 0 for 18 streak for the Toronto catcher.
McAllister left the bases loaded by getting Bautista to hit into an inning-ending forceout. Asdrubal Cabrera deftly turned Bautista's hard-hit ball into an out by making a sliding backhand stop in the hole at short and flipping to second for the out.
In the bottom half, Bautista, playing third base for only the 10th time this year, made a diving stop behind the bag of a smash hit by Matt LaPorta . He got to his feet and threw from the outfield grass to first for the out.
Notes: Before the ninth, Cleveland went 0 for 7 with runners in scoring position and left nine stranded. ... The Indians sent INF Cord Phelps to Triple-A Columbus to make room for McAllister. INF Luis Valbuena is expected to be recalled later this week and McAllister sent back, since Cleveland will not need a fifth starter until July 18 due to the All-Star break. ... Toronto INF Jayson Nix cleared waivers and accepted an assignment to Triple-A Las Vegas. ... Jays RHP Dustin McGowan (shoulder) pitched two scoreless innings in a rehab outing for Class A Dunedin on Wednesday. He's been on the disabled list all season. ... Toronto manager John Farrell said there is no timetable for the return of RHP Kyle Drabek , 4-5 with a 5.70 ERA when sent to Las Vegas on June 14. Drabek is 1-1 with a 7.02 ERA in four starts at Triple-A. ... Veteran 1B Nick Johnson , rehabbing from winter wrist surgery at Columbus, was put on the Clippers' DL when he aggravated the wrist. Cleveland signed him in March.