The Orioles took the lead in the eighth inning of their home opener and Mike Gonzalez (0-2) came in to protect the one-run advantage.
Edwin Encarnacion opened the ninth with a walk, went to second on a wild pitch and scored the tying run on Snider's double. A sacrifice moved Snider to third and Bautista drove him home on a sacrifice fly to deep center.
Kevin Gregg came on in the bottom of the ninth to pick up his first save and make a winner out of Casey Janssen (2-0), who had allowed the go-ahead Baltimore run in the eighth.
Toronto rallied in the ninth inning for the second straight game. The Blue Jays scored three times in the ninth against Texas on Thursday for a 3-1 victory.
Miguel Tejada hit a two-run homer and had four RBI for Baltimore, which has lost three of its first four games.
Boston schools pull out free condoms over wrapping complaints
Aaron Carter is still in love with Hilary Duff