Marcum was born in Kansas City, Missouri and raised in Excelsior Springs, Missouri, where he attended Excelsior Springs High School. Athletically, besides baseball, he was a two-time State Champion in wrestling and a standout football player. Marcum initially attended the University of Missouri, but transferred to Missouri State University, playing on the 2003 College World Series team as a pitcher and shortstop.
Marcum was drafted by the Blue Jays in the third round, 80th overall, of the 2003 Major League Baseball Draft. He quickly rose through the minor leagues and made his major league debut on September 6, 2005 as a late season call-up when rosters expanded. He made his debut against the Baltimore Orioles pitching one scoreless inning, giving up a hit and one walk, with one strikeout. Marcum pitched 8 innings, giving up six hits, without surrendering a run during the month of September.
Marcum went 3–4 for the Blue Jays in 2006 in 21 games, including 14 starts, with an earned run average (ERA) of 5.06. In his final seven starts, he had a record of 2–1 with a 3.31 ERA.
Marcum had a breakthrough season in 2007, going 12–6 with a 4.13 ERA. He struck out a total of 122 batters over 159 innings of work. He pitched 6+ scoreless innings in seven of his starts, including two instances where he pitched 6+ no-hit innings before being relieved. One of those instances was against the Boston Red Sox.
In 2008, Marcum got off to a good start, going 5–4 with a 2.65 ERA and 86 strikeouts in 98 2⁄3 innings, but an injury, followed by a handful of weak starts sent him to Triple-A on August 23. In September he was back in the starting rotation and he seemed to have returned to form. However, on September 19, days after an abbreviated start in which he left with elbow pain, the Jays released the information that Marcum would need Tommy John surgery and would miss the rest of the 2008 season and likely all of 2009. He finished the 2008 campaign with a 9–7 record, 3.39 ERA, and 123 strikeouts in 151 1⁄3 innings.
As of May 1, 2009, Marcum had started to throw again. He made two starts with the Advanced-A Dunedin Blue Jays in early July, and pitching successfully on his rehab assignment, he then started twice with the Double-A New Hampshire Fisher Cats, and once more with Triple-A Las Vegas 51s before being shut down for the season to prevent him from injury again.
On March 22, Marcum was named the Opening Day starter for the 2010 season, succeeding Roy Halladay for that role, who had seven consecutive opening day starts for the team from 2003 to 2009. On May 2, Marcum got his first win against the Oakland Athletics, it was his first win since September 11, 2008 before going through Tommy John surgery. On August 4, 2010, Marcum gave up Alex Rodriguez's 600th career home run. Marcum ended the season with a 13–8 win–loss record, 3.64 ERA, and 165 strikeouts in 195 1⁄3 innings pitched.
On December 6, at the 2010 MLB Winter Meetings, Marcum was traded to the Milwaukee Brewers in exchange for infield prospect Brett Lawrie.
On July 4, 2011, Marcum hit his first Major League home run, a grand slam off Daniel Hudson of the Arizona Diamondbacks. Despite the home run, the Diamondbacks won the game 8–6. In the 2011 NLDS against Arizona, Marcum gave up a grand slam to Paul Goldschmidt, which sealed a win for the Diamondbacks. However, the Brewers won the series in 5 games. In 2011, he went 13–7, with a 3.54 ERA and 158 strikeouts in a career-high 200 2⁄3 innings.
Due to injury, Marcum's 2012 season was cut short to just 21 starts. He went 7–4 with a 3.70 ERA and 109 strikeouts for the Brewers. After the season, he elected free agency.
On January 30, 2013, Marcum signed a one-year contract worth $4 million with the New York Mets. Through his first 11 games (9 of which were starts) for the Mets, Marcum posted a dismal 0–9 record with a 5.76 earned run average. He recorded his first win as a Met in a game against the Chicago White Sox on June 26, 2013. Marcum pitched 8 innings and yielded only 4 hits and 2 walks while striking out 2. He underwent surgery on his pitching shoulder on July 15, 2013, and was ruled out for the rest of the season. Marcum was waived/injured by the Mets on July 23, 2013. Marcum finished his lone season in New York with a 1–10 record, 5.29 earned run average, and 60 strikeouts in 78 1⁄3 innings pitched.
On December 16, 2013, Marcum signed a minor league contract with the Cleveland Indians. While pitching in extended spring training, on May 22, 2014, Marcum was shut down after problems with his injured shoulder occurred. He pitched in just 8 games for the Triple-A Columbus Clippers in 2014.
On November 18, 2014, Marcum signed a minor league deal to remain with the Indians organization. He started the 2015 season on the Columbus roster, but was called up to the Indians on April 12, 2015, without having pitched for Columbus. The Indians designated Marcum for assignment on April 14. He was added back to the Indians' roster on May 20. He was subsequently designated for assignment once more on June 18.
On July 26, 2015, it was announced that Marcum had taken a coaching position with the Northwestern Oklahoma State Rangers.
Marcum was hired by Missouri Southern State University to be the pitching coach for the Lions on August 10, 2016.
Marcum threw a broad array of pitches. He used a four-seam fastball at 86–89 miles per hour (138–143 km/h), a two-seam fastball at 84–87 miles per hour (135–140 km/h), a cutter at 84–86 miles per hour (135–138 km/h), a changeup at 77–79 miles per hour (124–127 km/h), a slider at 80–83 miles per hour (129–134 km/h), and a slow, looping curveball at 67–73 miles per hour (108–117 km/h). Marcum almost never used his two-seamer on right-handed hitters, preferring to use his cutter and breaking pitches. Against left-handed hitters, he threw many more changeups and did not use his slider.