With the game tied in the ninth, Aaron Loup (1-2) began the frame by hitting Chris Davis with a pitch. J.J. Hardy sacrificed him to second, and one out later Nolan Reimold was issued an intentional walk to get to light-hitting Alexi Casilla.
The strategy was negated, however, when Blue Jays shortstop Munenori Kawasaki threw low to first on Casilla's grounder for an error, loading the bases.
Markakis followed by serving a hit down the left field line, scoring Davis with the game-winner as the Orioles took the opener of a three-game set.
Jim Johnson (1-1) hurled a scoreless top of the ninth to earn the victory.
Colby Rasmus provided Toronto's only RBI.
Exploding whale video goes viral on Internet
Wisconsin business offering 'therapeutic cuddling' forced to close