"This was a baseball decision based on Maikel's development and performance," Phillies general manager Ruben Amaro Jr. said in a statement. "We believe he is ready for the next step."
Franco will start and bat fifth as the Phillies host the Arizona Diamondbacks on Friday night.
Franco, 22, will replace Cody Asche, who was sent down earlier this week to Triple-A Lehigh Valley as the Phillies would like him to convert into a left fielder.
"It's human nature to be mad," the 24-year-old Asche told reporters about the move Wednesday. "I had my time to be mad last night. I'm at a ballpark today playing baseball. There's worse things that could be happening. I'm going to take it in stride and try my best."
Franco was hitting .355 with three home runs and an International League-leading 24 RBIs in 33 games for Lehigh Valley. He hit .179 with the Phillies last year after he was called up in September.
By waiting until Friday to promote Franco, the Phillies will retain his rights until 2022 before he can become a free agent.