CLEVELAND -- Brett Cecil felt far from perfect -- except on the pitching mound.
"Baseball-wise, it was a great night, just awesome," Cecil said. "I feel like [garbage]. I woke up with a headache and I'm all stuffed up. Papi [pitching coach Bruce Walton] said I should get sick before every game."
Cecil (2-1) allowed one hit over eight innings, striking out a career-high 10.
"I wish he could have finished it off," Toronto manager Cito Gaston said. "He worked on a changeup in spring training and it was outstanding tonight."
Cecil lost the perfect game when he walked Grady Sizemore with one out in the seventh. He then walked Shin-Soo Choo but came back to strike out Austin Kearns before Jhonny Peralta ruined the no-hitter and shutout with one swing. Peralta lined a 2-2 pitch to left field for a single, scoring Sizemore to get Cleveland within 4-1.
"I wasn't nervous, but people who tell you they don't know they have a game going are lying," said the 23-year-old. "I knew in the fifth inning, but didn't want to think about it too much."
Cecil was seeking to pitch only the 17th perfect game since 1900 and the first in Cleveland since the Indians' Len Barker did it against Toronto on May 15, 1981.
Toronto's only no-hitter was by Dave Stieb, 3-0, over the Indians at old Cleveland Stadium on Sept. 2, 1990.
Peralta hit an inside fastball.
"He's a strong guy and muscled it," Cecil said. "If it was a little lower, he's got good power there and it may have been a lot more than a single. A little more inside, he probably takes it for a ball."
Kevin Gregg gave up a one-out single to Sizemore in the ninth. He walked Kearns with two outs, then fired a called third strike past Peralta on a full count to complete the two-hitter.
"He mixed it up well," Sizemore said. "It wasn't just one pitch.
"We're trying to win the game. We're not worried about trying to break up the no-hitter or the perfect game. That's the mindset. We're trying to score five runs when they have four."
Toronto hit three home runs off Mitch Talbot (3-2), giving the Blue Jays an AL-leading 41.
That gave the Blue Jays 13 homers in their last six games.
Buck is 9 for 15 (.600) with four homers and eight RBIs in his last four starts. He opened the season in a 9-for-58 (.155) slump.
"It helps that balls I hit hard now are not going into gloves," Buck said.
Cecil said he has not shaken off one pitch called by Buck in his last two starts.
"When a guy is locating four pitches like he does, it's easy to call a game," Buck said. "He had a great changeup and a good two-seam fastball."
"It was fun to be in a game like this," Hill said. "Everybody wants to be part of a game that could be history."
Talbot, a rookie right-hander, had not allowed a homer in his previous 19 1/3 innings. The right-hander gave up five runs and eight hits over eight-plus innings, leaving after Buck's homer to open the ninth.
Cecil made his major-league debut against the Indians last May 5 and came in with an 0.69 ERA in two career starts against Cleveland. His previous high for strikeouts was nine against the Indians last July 21.
Indians RHP Kerry Wood gave up two walks, four hits and six runs in two-thirds of an inning in his first outing on a rehab appearance at Double-A Akron. The closer has been sidelined since mid-March with a strained muscle in his upper back. ... Cleveland has scored 50 percent (43 of 86) of its runs with two outs. ... Toronto 3B Edwin Encarnacion was scratched from an extended spring training game Monday with soreness in his right arm. He was placed on the 15-day disabled list April 15. ... Snider returned to the lineup after sitting out Sunday with the flu. ... With the Cavaliers playing in the NBA playoffs next door, the crowd of 10,117 was the second-lowest of the season in Cleveland and in the history of Progressive Field, which opened in 1994.