Yunel Escobar added a solo shot for the Blue Jays, who have won two straight and split their last six overall.
Ricky Romero (12-8) threw seven solid innings, allowing one run on seven hits with two walks and two strikeouts in earning the victory.
Michael Young had an RBI double among three hits and David Murphy chipped in with a run-scoring single for Texas, which has dropped four in a row and seven of nine, but still leads the division by 7 1/2 games ahead of Oakland.
Tommy Hunter (12-3), a winner of three straight starts coming in, was roughed up for seven runs on as many hits, walked a pair and struck out four over seven innings. Left-hander Cliff Lee was originally scheduled to get the start, but was pushed back until Tuesday, then scratched with an ailing back.
Toronto got a gift run in the second to open the scoring. With runners on second and third, and two outs, John Buck struck out swinging, but a wild pitch scored Wells, who started the inning with an infield single.
Then with two aboard in the third, Wells lined a fastball that just cleared the left-field wall for a 4-0 Blue Jays advantage. After Lyle Overbay reached with a double, Hill clubbed a two-run shot to left.
Murphy got the Rangers on the board with an RBI single in the fourth. Texas then stranded two runners in both the fifth and seventh innings.
Meanwhile, Hunter settled down to retire 12 in a row before serving up a solo homer to Escobar with two outs in the seventh that put the Jays in front, 7-1.
Shawn Camp took over for Romero in the eighth and tossed a scoreless inning. Brian Tallet came on for the ninth and allowed an run-scoring two-out double to Young. Nelson Cruz then flied out to end the game.
Rangers outfielder Josh Hamilton missed the game with a rib cage injury and will likely sit out this week…Prior to the game, Texas recalled infielder Esteban German from Triple-A Oklahoma City and designated infielder Alex Cora for assignment…The Blue Jays have won six of their seven matchups with the Rangers this season.