De Gea kept United in the game at 1-0 with a string of fantastic saves, before Alex Telles cancelled out Paco Alcacer’s opener with a stunning drive.
Ronaldo then popped up in the 95th minute with the winning goal.
Solskjaer said afterwards: “He’s done that so many times. When you saw him against the Republic of Ireland a few weeks ago [for Portugal], he missed a penalty early, didn’t touch the ball more or less and then scored two great headers in the last two minutes.
“That’s just what he’s done throughout his career. He’s so strong mentally. He stays in the game, I’ve seen him all day today, the way he’s built himself up for this game, how focused he’s been and when he gets that one chance, it’s a goal. But a true mark of a very good finisher is that he keeps calm when the chance arrives.
There was praise too for goalkeeper David de Gea, who made a string of world-class saves in the first half to keep United in the tie.
Solskjaer added: “He had a difficult summer after the final. He went to the Euros, didn’t play there, but he’s really come back with a determination and a belief and a work rate that I’ve enjoyed.
“And today, he got a deserved outcome because he saved us tonight, we have to be realistic and say that. We’ve got two very good keepers in Dean [Henderson] and Tom [Heaton] too, but tonight, David deserves, from me, the man of the match.”