Gonzalez (11-8) allowed an unearned run and struck out five. Baltimore has won two straight after suffering through a six-game losing streak that ended the Orioles' hopes for a playoff berth.
Toronto threatened to regain the lead in the eighth when Brett Lawrie doubled home a run. The Blue Jays then put runners on second and third with one out only to have Tommy Hunter escape the jam by striking out two batters in a row.
Jim Johnson survived a two-out single in the ninth to earn his 48th save, tops in the American League.
Mark Buehrle (12-10) gave up three runs on eight hits in 3 1/3 to take the loss.