The fight, originally slated to take place at middleweight (185 pounds), fell into limbo after Johnson failed to make the mandatory 186-pound limit Friday for his nontitle contest. He checked in at 197 pounds.
He was required to weigh in at less than 205 pounds Saturday in order for the fight to proceed.
As a result of failing to make weight, Johnson is required to forfeit 20 percent of his fight purse to Belfort, who weighed in at 186 pounds.
Johnson was hit with a barrage of criticism from fans on the Internet, but the former welterweight, who was scheduled to make his middleweight debut against Belfort, explained on Facebook the reason for his weight-cutting difficulties.
"It was for medical reasons, and I did what the UFC doctor told me to do," Johnson said. "Say what you want, I'm still going to do my (thing). You try not having feeling in your legs and can't move and see how you look at like after that."
Struggling to make weight isn't new to Johnson.
He was unable to make the 170-pound limit at UFC 104 in October 2009, tipping the scale at 176. The fight with Yoshiyuki Yoshida would go on, however, at a catch-weight of 176 pounds.
Johnson knocked out Yoshida in the first round.
UFC president Dana White was among those harshly critical of Johnson for not making weight.
"As a fighter, you are a professional," White said, according to UFC.com. "You are contracted to come in at a certain weight. This is not the first time this has happened with Johnson. He moved up to 185 pounds so this wouldn't happen and here we are in the same position again.
White added, according to MMAjunkie.com: "His job is on the line. His job is absolutely on the line, win or lose."
Belfort-Johnson is the co-feature bout at UFC 142, which takes place at HSBC Arena in Rio de Janeiro. UFC featherweight champion Jose Aldo defends his title against top contender Chad Mendes in the main event.
Franklin McNeil covers mixed martial arts and boxing for ESPN.com. Follow him on Twitter at www.twitter.com/Franklin_McNeil.