Halladay (13-5) allowed two runs, only one of them earned, on eight hits in eight innings. He struck out six and did not walk a batter.
He has gone at least eight innings in five of his last six starts. Jason Frasor came on in the ninth to collect his sixth save.
Tampa Bay lost its fifth straight game, equaling its longest such streak of the season.
Overbay's homer came in the first inning, and Adam Lind added a solo shot in the third in boosting the Toronto lead to 5-0.
James Shields (7-9) lost for the fourth time in five decisions. He gave up eight hits and five runs in eight innings.
Toronto has hit at least one home run in eight straight games. The Blue Jays have downed the Rays just three times in 10 meetings this year.