Prior to playing professionally, Sanabia attended Castle Park High School in Chula Vista, California. He was drafted by the Florida Marlins in the 32nd round of the 2006 amateur draft and began his professional career that season, playing for the GCL Marlins. With them, he went 3-1 with a 3.24 ERA in 11 relief appearances. He pitched for the Jamestown Jammers in 2007, going 2-6 with a 5.13 ERA in 15 starts. In 2008 with the Greensboro Grasshoppers, he went 5-5 with a 4.93 ERA in 19 starts. With the Jupiter Hammerheads in 2009, Sanabia went 9-5 with a 3.45 ERA in 19 games (18 starts). He began the 2010 season with the Jacksonville Suns, going 5-1 with a 2.03 ERA in 14 starts prior to his call up.
He made his major league debut on June 24, 2010, pitching 3.1 innings in relief and posting an ERA of 5.40 against the Baltimore Orioles. He appeared in 15 games for the Marlins that year, making 12 starts, going 5-3 with a 3.73 ERA.
In 2011, he went 0-0 with a 3.27 ERA in three games (two starts). In the minor leagues, he went 0-5 with a 5.75 ERA. He began 2012 with the Triple-A New Orleans Zephyrs. He finished the 2012 season with the Zephyrs going 6-7 with a 4.06 ERA, a 1.31 WHIP, in 88.2 innings pitched, with 24 walks, 63 strikeouts in 17 games started.
On April 5, 2013 he made his first start since 2011, pitching 6 shutout innings against the Mets and picking up the win. On May 20 in a start against the Phillies, Sanabia gained infamy for spitting on the baseball and proceeding to throw it, something he claimed he didn't know was illegal. He got the win in that start, giving up 1 run in 6.1 innings. His next start, against the White Sox, was limited to 4 innings due to groin injury, and he was placed on the disabled list, and his season was ended.
Sanabia was claimed off waivers by the Arizona Diamondbacks on October 4, 2013. Sanabia returned to the Marlins on a minor league contract on May 8, 2014. His 2014 minor league stats with both teams were a combined 7-5 record, a 4.70 ERA, a 1.49 WHIP, and 104 strikeouts in 134 innings pitched.
On March 7, 2016, Sanabia signed with the Toros de Tijuana of the Mexican Baseball League.
On May 9, 2016, Sanabia had his contract purchased by the Chicago Cubs.
On June 10, 2016, Sanabia had his contract sold to the Toros de Tijuana of the Mexican Baseball League.