United took a ninth-minute lead with a well-crafted goal. Paul Pogba’s clever turn and pass to Cavani resulted in an inviting pass to Fernandes who expertly chipped past the advancing Lopez.
Six minutes later, though, Roma were awarded a penalty when Pogba slid recklessly into tackle Rick Karsdorp, with the full back’s shot striking the outstretched arm of the Frenchman and Lorenzo Pellegrini drilled home the equaliser from the spot.
It got worse for United in the 34th minute when their former midfielder Henrikh Mkhitaryan fed Pellegrini in the inside left channel and the Italian’s low cross was turned in by ex-Manchester City striker Edin Dzeko.
Roma coach Paulo Fonseca’s inability to freshen up his side from the bench in the second half proved decisive, however, as they wilted in the face of a determined United.
Cavani fired the home side back on level terms three minutes after the interval with a fine first-time strike after being slipped in by Fernandes following a swift break.
The Uruguayan completed the turnaround with a simple tap-in after Roma substitute keeper Antonio Mirante failed to hold on to a low shot from Aaron Wan-Bissaka.
Fernandes made it 4-2 from the spot after former United defender Chris Smalling had clattered into Cavani and Pogba headed in the fifth from, inevitably, a Fernandes cross.
There was still time for substitute Mason Greenwood to join in the fun with a confident finish after he was played in by the irrepressible Cavani.
It wasn’t quite a repeat of United’s 7-1 win over Roma in the Champions League last eight in 2007, but it should give Solskjaer a chance to secure his first silverware as manager.
“I don’t feel the job is done. We did a good job and did well but we know they have quality,” said the Norwegian.
“We took most of our chances today, so we’re very pleased with that. The character showed – we came back, we didn’t lose our heads. For five, 10 minutes at the end of the first half we didn’t look great, but we got it together.”
His counterpart Fonseca was left puzzled how a team that was leading at the break could have fallen apart so badly.
“It’s difficult to explain how the same team that did so well in the first half had that kind of second half. It’s hard to play against a side like United without having the substitutions,” he said.
“It’s positive to reach this stage of the competition anyway, and also to play like we did in the first half. But in the second half we got everything wrong.”
United will face the winners of the other semi-final between Villarreal and Arsenal. The Spanish side won Thursday’s first leg in Spain 2-1.