Franco made his professional debut for the Gulf Coast Phillies that year. He played in 52 games and hit .222/.292/.330 with two home runs. In 2011, he played for the Williamsport Crosscutters and Lakewood Blue Claws. He played in 71 games, hitting .247/.318/.360 with three home runs. He returned to Lakewood in 2012 and spent the entire season there. He hit .280/.336/.439 with 14 home runs in 132 games.
Franco started the 2013 season with the High-A Clearwater Threshers. He was promoted to the Double-A Reading Fightin Phils in June.  He finished the season hitting .320/.356/.569 with 31 home runs. After the season, he won the Paul Owens Award as the Phillies Minor League Player of the Year. 
Prior to the 2014 season, Franco was ranked by MLB.com and Baseball America as one of the top 100 prospects in baseball.  The Phillies invited him to spring training where he competed with Cody Asche for the starting third base job.  He was sent to the minors on March 23, after Asche won the job.  Franco started the season with the Lehigh Valley IronPigs, hitting .257/.299/.428 with 16 home runs.
Franco was called up to the majors for the first time on September 2, 2014, and made his major league debut that day against the Atlanta Braves.  During his initial stint in the majors in 2014, Franco hit .179/.190/.214 with no home runs and 5 RBIs. 
Franco began the 2015 season with the Triple-A Lehigh Valley IronPigs. He was called up to the Phillies to be their starting third baseman on May 15, after hitting .355 with four home runs and 24 RBIs with the IronPigs. He hit his first career major league home run on May 17 against Arizona Diamondbacks pitcher Randall Delgado. On June 23, against the Yankees, he became the first player in Phillies history, since the RBI stat was invented in 1920, to have back-to-back 5-RBI games. On August 4, he hit a grand slam against the Los Angeles Dodgers. He was placed on the 15-day disabled list on August 18 with a small wrist fracture, but he returned to play the last three games of the year. In 2015, he batted .280/.343/.497.  In 2016, he batted .255/.306/.427.