"We were up four going into the ninth and they were a base hit away from tying the game up," Price said. "There's no easy games out here."
Johnny Damon also went deep for the Rays, who snapped a two-game skid.
Jose Bautista hit a pair of solo home runs, the 12th multihomer game of his career, but the rest of the Blue Jays struggled against Price, now 7-0 with a 2.30 ERA in eight career games against Toronto. The Rays have won all eight games.
|More on Rays at Blue Jays|
Price, who has won three straight starts, allowed three runs and eight hits in eight-plus innings. He walked two and struck out five.
"Outstanding," Rays manager Joe Maddon said. "Great command of his stuff all night long. He threw the ball where he wanted to. He pitched really, really well."
Price, however, didn't feel like celebrating after being unable to finish in the ninth, with Kyle Farnsworth called on to record his fifth save.
"I was disappointed in myself," Price said. "[Maddon] lets me go out there and try to finish and I've got to be able to do it. It's unfortunate. You've got to go out there in the ninth inning and shut the door."
The left-hander started the ninth but was replaced after Adam Lind's RBI double and Jose Molina's single. Farnsworth came on and gave up an RBI single to Juan Rivera, then went down clutching his left knee trying to field Travis Snider's sacrifice, which put runners at second and third.
"Of course [Price] wanted to finish that but it was just not going to work that way if I'd left him out there, based on their momentum at that point," Maddon said.
Bautista hit a two-out drive to left-center in the first and followed that with a one-out blast to left in the fourth that just cleared the wall. The homers were his sixth and seventh.
"He's very reminiscent of Barry Bonds in 2002," Maddon said. "He looks like that where every time he swings the bat, it looks like it's going to go over the wall. Just tremendous plate discipline, very aggressive swing. It's an understatement to say that he's locked in right now. He's hitting as though there's a league above this one.
Bautista, who walked in the seventh and singled in the ninth, has reached base in 10 consecutive plate appearances.
Price (3-2) didn't allow a hit to another Blue Jays batter until Molina's one-out single in the seventh. He got some help from his defense to escape that inning, with left fielder Sam Fuld making a diving catch on Snider's two-out liner, stranding runners at first and second.
Unbeknownst to him, Fuld narrowly avoided a collision with B.J. Upton on the play.
"I was locked in on the ball," Fuld said. "It wasn't until after I caught it and looked back and B.J. was sprawled out that I realized 'Oh, we both dove for it.' I had no idea. His eyes were the size of baseballs, like he just avoided a car wreck. After the fact I realized that yeah, I avoided a car wreck."
Fuld, who came in tied with New York's Alex Rodriguez for the AL batting lead, went 1 for 3 with two walks, dropping his average to .365.
Price got some more help in the eighth, getting out of a first-and-third, one-out jam by getting Corey Patterson to ground into a double play.
Making his first start after opening the season on the disabled list with a sore elbow, Blue Jays right-hander Brandon Morrow (0-1) looked shaky in the first, walking leadoff hitter Fuld and giving up a two-run homer to Damon, his fourth.
Morrow soon settled, striking out the next three batters and allowing just two hits, both singles, over the next four innings.
On Aug. 8, Morrow threw a one-hitter and struck out a career-high 17 in a 1-0 home win over the Rays, his first complete game. Evan Longoria broke up the no-hit bid with a two-out infield single in the ninth.
Morrow allowed three runs and three hits in 5 1/3 innings. He walked two and struck out 10.
- The Blue Jays placed INF Jayson Nix (left shin contusion) on the 15-day DL and recalled McCoy from Triple-A Las Vegas. Nix left Friday's game in the second inning after Rodriguez slid into him while trying to break up a double play.
- Toronto 3B Edwin Encarnacion was scratched from the lineup with a sore left wrist and replaced by McDonald.
- Blue Jays 2B Aaron Hill (right hamstring) did some light jogging but sat out his third straight game. Toronto manager John Farrell said a decision will be made Sunday whether to put Hill on the DL.
- Rays INF Felipe Lopez, who was yanked from Friday's game after failing to run out a groundball, did not start. Maddon said he discussed the incident with Lopez before Saturday's game.