Cobb (5-2) allowed one run and three hits in 6 1-3 innings. The right-hander walked two and struck out two. Thirteen of his 19 outs came on groundballs.
"A lot of groundballs is always what you want to see out of him," Rays manager Joe Maddon said. "If you're seeing the ball on the ground, you know that everything is working right."
Cobb wasn't happy with his stuff, but battled enough to get his first victory since winning at Colorado on May 5.
"The changeup wasn't as sharp as I'd like it but it was good enough to get a good amount of groundballs," Cobb said. "That's what was key to my success tonight."
Jake McGee got two outs in the seventh before the Blue Jays rallied against Joel Peralta in the eighth.
Munenori Kawasaki singled, Melky Cabrera walked and
Jose Bautista hit an RBI single.
Edwin Encarnacion struck out before Adam Lind reach on a fielding error by second baseman Ryan Roberts.
Roberts redeemed himself when Rodney came on and got
J.P. Arencibia to ground into an inning-ending double play on the first pitch, with Roberts and shortstop Yunel Escobar combining.
"I really think Escobar's game was outstanding," Maddon said. "That was a big part of our win."
Arencibia hit a ninth-inning two-run homer off Rodney in Toronto's 8-7 comeback win on May 6, leaving the Rays closer in search of revenge.
"I make the same pitch, maybe more location tonight, get a groundball," Rodney said.
Roberts had entered the game in the seventh after outfielder Matt Joyce left with tightness in his right hamstring. Ben Zobrist moved from second to right.
"I don't anticipate anything bad with that but we had to get (Joyce) out," said Maddon, adding that Joyce was due to get the day off against left-hander
Mark Buehrle in Wednesday's series finale.
Rodney gave up a run in the ninth but closed it out for his ninth save in 12 chances. Colby Rasmus hit a one-out double, went to third when pinch-hitter
Maicer Izturis grounded out and scored on a wild pitch.
Kawasaki walked but Cabrera was caught looking for the final out.
Blue Jays right-hander Ramon Ortiz (1-2) lasted just 2 1-3 innings, allowing four runs and six hits, including two solo homers. He walked one and struck out one.
"He didn't have it tonight," Blue Jays manager John Gibbons said. "His command was off and that's something he needs."
Evan Longoria doubled to begin the second, extending his hitting streak to 15 games. Longoria advanced on
James Loney's grounder, then scored on Luke Scott's groundout. Johnson followed with a drive to center, his eighth.
Jennings made it 3-0 by homering on Ortiz's first pitch of the third. Joyce singled but was forced at second on Zobrist's grounder before Longoria chased Ortiz with a single.
Aaron Loup came on and got Loney to ground into a fielder's choice, with Zobrist thrown out at the plate, but Scott followed with an RBI single.
Rasmus got the Blue Jays on the board with a two-out homer in the fifth, his seventh, a deep drive off the facing of the third deck.
A single and a walk gave the Blue Jays a chance to tie it with two outs in the sixth, but Escobar ranged behind second base to snare Lind's grounder and throw him out.
"I thought for sure it was a base hit," Cobb said. "It was up the middle. Escobar made an unreal play and finished it off with a great throw."
Cobb left after Brett Lawrie reached on Longoria's throwing error in the seventh. McGee came on and got Rasmus to foul out, then fanned pinch hitter Mark DeRosa.
NOTES: Tampa Bay has won five of six on the road. ... The Blue Jays turned four double plays. ... Rays C Jose Molina (left hamstring) missed his third straight game. ... Blue Jays RHP Josh Johnson (sore triceps) allowed one run in three innings in his first rehab start at Class-A Dunedin on Monday. Johnson will start again for Dunedin on Saturday, and is expected to make a third rehab start before being activated. ... A moment of silence was held before the game to honor the victims of Monday's deadly tornadoes in Oklahoma.