On September 14, 2008, Sánchez was called up to the majors and made his debut on September 17. He attended the Marlins' 2009 Spring training camp and competed with Jorge Cantú for the starting first baseman position; Sánchez struggled in the spring and was optioned to Triple-ANew Orleans Zephyrs.
Entering the following year's spring training, he again had to compete to be the starter at first base. This time, it was with fellow prospect Logan Morrison.[6] Sánchez earned the job on March 29, 2010 after Morrison was reassigned to the minors.[7] On April 10, 2010, Sánchez hit his first home run of the 2010 season. He had his most successful game so far on June 11 in Interleague play against the Tampa Bay Rays, when he had four hits with two home runs and six RBIs.
He was involved in a bench-clearing brawl in the sixth inning of a 16–10 victory over the Washington Nationals at Sun Life Stadium on September 1, 2010. The ill will had spilled over from the previous night when Marlins catcherBrett Hayes suffered a dislocated left shoulder as a result of a collision with Nyjer Morgan at home plate. After hitting Morgan with a pitch, Morgan stole second and third base with a 9 run lead. This prompted starting pitcher Chris Volstad to throw a ball behind Nyjer in his next at-bat. Morgan charged the mound and delivered a left-handed punch at Volstad. Sánchez, who ran in from his position at first base to defend his teammate, then applied a right-arm clothesline to bring Morgan to the ground. Even though he wasn't ejected from the contest,[8] Sánchez was given a three-game suspension two days later for his part in the fracas .[9]
Sánchez changed his uniform number to 15 before the start of the 2011 season. He was the lone Marlins player at that year's All-Star Game.[5]
On May 19, 2012, Sánchez was demoted to the New Orleans Zephyrs after an 0-for-3 day at the plate lowered his batting average to .197. On June 10, 2012, Sánchez was recalled to the Majors by the Marlins.[12]
Although Sánchez improved since being called up, hitting two home runs with a batting average of .202, he was optioned to the Zephyrs to make room for newly acquired Carlos Lee, even though he hit a home run in the ninth inning with two outs and two strikes to tie the game that same day.[13]
Pittsburgh Pirates
On July 31, 2012, Sánchez was traded to the Pittsburgh Pirates along with pitcher Kyle Kaminsky for outfielder Gorkys Hernández and a competition balanced 2013 draft pick.[14] On August 28, 2013, Sanchez changed his number to 17 so his new teammate, John Buck, could wear number 14.[15] He was designated for assignment on December 1, 2014.[16]