Marcum (13-8) handcuffed the O's on four hits, walking two and striking out seven to pick his 13th win, tying a career high. He raised his record to 3-0 against Baltimore this year.
Jason Frasor got the final five outs, notching his fourth save.
John McDonald drove in three runs with a two-run single and a sacrifice fly and Adam Lind went 3-for-5 with a run scored for the Blue Jays, who downed the O's for the 15th straight time at Rogers Center.
Rick VandenHurk (0-1) absorbed the loss, giving up three runs on four hits over four frames.
Adam Jones went 3-for-4 with an RBI in the Orioles' defeat.