The veteran catcher, a former Phillie, started the night with a grand slam in the top of the second inning, his second homer this season, and then added a solo shot in the ninth.
A run scored on Ryan Howard's ninth-inning fielding error and Scott Rolen had two hits for the Blue Jays, who recovered from a 10-3 beating Friday.
Winner A.J. Burnett (4-4) was charged with two earned runs and only four hits in 6 1/3 innings with three walks and eight strikeouts.
Closer B.J. Ryan earned his eighth save.
The losing pitcher was starter Adam Eaton (0-2).
'How to Train Your Dragon 2' releases 5-minute clip
Moore to attend retreat in to avoid Kutcher's wedding