"The only way you're able to have a shot at that (beating Price) is have a well-pitched game," Baltimore manager Buck Showalter said. "Zach has come back strong and that bodes well for him in the future."
Britton's current run has come after he being sidelined just under three weeks last month due to a strained left shoulder.
"The time on the DL, I tried to use it wisely," Britton said. "Talking to (closer) Kevin Gregg about building a game plan. Having a plan every time you go out there. ... What you're going to do. I feel like that's really helped me, especially out on the mound."
Britton (9-9) allowed two runs and four hits in six innings. The left-hander was coming off starts against Minnesota and the New York Yankees where he gave up one run in a combined 12 innings.
Vladimir Guerrero got Baltimore's second hit off Price (12-12) on a leadoff single in the seventh when the Orioles scored all their runs.
Guerrero went to third when Mark Reynolds and Robert Andino drew one-out walks. After Nolan Reimold hit a sacrifice fly and Ryan Adams re-loaded the bases on an infield single, Hardy put Baltimore up 3-2 with a two-run single.
"He was carving us up all game," Hardy said of Price. "I think it might have been the only ball (a cutter) he threw over the plate all night."
Price was touched for three runs and four hits over seven innings. The left-hander, who struck out a team-record 14 in a 12-0 victory over Toronto last Sunday, had 11 strikeouts and three walks.
"One pitch, that's the game," Rays catcher Jose Lobaton said. "I feel bad for him. He just threw it a little bit to the middle (of the plate)."
Evan Longoria gave the Rays a 2-0 lead on a two-run double in the first. He has 60 RBIs over his last 64 games.
After Jim Johnson threw two perfect innings, Gregg gave up one hit and two walks in the ninth en route to his 20th save.
Pinch-hitter Sam Fuld opened the Rays' ninth with a single and went to second on Sean Rodriguez's one-out grounder. After Casey Kotchman and pinch-hitter Matt Joyce both walked to load the bases, Brandon Guyer hit a game-ending grounder that Hardy made a nice play on at short.
"There's a method to what he's trying to do out there," Showalter said of Gregg. "I understand that. It's not always real comfortable all the time."
The Orioles had two on with no outs during the second, but failed to score when Reynolds and Andino both struck out, and Reimold flied out.
After Guerrero drew just his 14th walk of the season leading off the second, Matt Wieters followed with an opposite-field single to right for the Orioles' first hit. Price then retired his next 14 batters before Nick Markakis reached first on a two-out throwing error by third baseman Longoria in the sixth.
Fuld pinch-hit for 2B Ben Zobrist, who left because of neck stiffness. ... Baltimore RHP Tommy Hunter (flulike symptoms) remained at the team hotel. ... Tampa Bay LF Desmond Jennings had been hitless in his previous 12 at-bats before an infield single in the first. ... Orioles INF Chris Davis (strained right shoulder) is set to play in a minor league game Sunday and could rejoin the team next week. ... Baltimore LHP Jo-Jo Reyes left the team for the birth of his child. ... Orioles LHP Brian Matusz, skipped this time through the rotation, had a bullpen session and might pitch in next week's series against the Yankees. ... Tampa Bay RHP Wade Davis (8-8), 0-2 with a 6.17 ERA in two home starts against Baltimore this season, will face Orioles RHP Alfredo Simon (4-7) on Saturday night.