Cosart (7-5) was pitching at Tropicana Field for the first time since his electrifying July 12 Major League debut last year, when he beat Price by throwing eight scoreless innings, allowing two hits, and carrying a no-hitter in the seventh inning.
"Hopefully I get to pitch here for a lot more years and keep it going," Cosart said.
Cosart was not quite as dominant Friday, but he was plenty good. He allowed six hits and struck out two batters with a walk, retiring 12 in a row during one stretch. He breezed through the fifth inning on only five pitches and wound up with 109 pitches.
"I knew I had to execute my pitches down and attack the zone early because they were going to be swinging early, and it's pretty true," Cosart said. "They came out swinging, and I was able to get a lot of ground balls."
Jonathan Villar hit a solo homer in the ninth for the Astros, and the Rays scored an unearned run in the bottom of the inning against closer Chad Qualls, who got his ninth save.
Cosart improved to 3-0 with a 1.17 ERA in three starts against the Rays, becoming the fifth pitcher in history to go at least seven innings and win his first three starts against Tampa Bay.
"He's pitched well against us every time we've faced him," Rays manager Joe Maddon said. "He's good; he's really good. Nevertheless, our pitcher was really good also, and you have to figure out a way to score a couple of runs. We had opportunities a couple of times early. We didn't have a lot, but we had them."
Price (5-7) held the Astros to two runs and six hits in eight innings and struck out 12 batters, including his 1,000th strikeout of his career when he fanned Chris Carter in the second. He is the first pitcher to strike out at least 10 in four consecutive starts since Boston's Jon Lester in 2010.
"I'm a young guy in the league, and that's a guy I've watched for years -- and he's one of the best in the league, and he's proven that," Cosart said. "That's where we're all trying to get, just trying to go out there and compete pitch for pitch. It's always fun to beat the best."
Cosart's final pitch of the game, a 3-2 curveball to strike out Kevin Kiermaier and strand a runner, impressed Astros manager Bo Porter.
"We all know the fastball velocity, the plus fastball, the late life, but when he starts to get the confidence to throw his breaking ball in those types of situations, that's when you know he's got a chance to be a really special pitcher in this league," he said.
Springer's homer in the third, which hit the catwalk high above left field, was his 13th of the season, tying him with Carter for the team lead. The homer came after red-hot second baseman Jose Altuve had his Major League-leading 100th hit, which was part of his three-hit night.
"Having those two guys hit back-to-back is something that we talk about as a staff just how dynamic it is," Porter said. "George, being a really good fastball hitter, and Altuve, the best basestealer in the American League, it really puts a lot of pressure on the opposing pitcher."
Springer's homer actually came on a changeup and wound up traveling an estimated 438 feet.
"I was saying to myself, 'Stay fair, ball,'" Springer said. "It ended up staying fair because I was out in front of it and just didn't want to hook it."
Since returning to the action Tuesday after being forced out of the lineup for three consecutive games against the Rays last weekend with a bruised hand, Altuve is on an 11-for-18 tear. He has recorded multiple hits in 20 of his past 36 games.
"I got lucky against him," he said of Price. "Hitting with Springer behind you and Dexter [Fowler] in front of you, it makes it a little easier. The pitchers are focusing on those two guys."
Both Porter and Cosart gave credit to plays by the Astros' defense, which included a diving stop by third baseman Matt Dominguez, a nice barehanded play by shortstop Jonathan Villar and catcher Jason Castro blocking a ball and throwing out a runner at second base in the eighth.
"That saved me from a lot of damage," Cosart said.