- Rodrygo (2', 70')
- Lucas Torró (58')
Brazilian Rodrygo scored the opener after two minutes, but Carlo Ancelotti's side were pegged back when Lucas Torro equalised 13 minutes after the break.
Rodrygo, however, tapped in a loose ball in the 70th minute to claim a much-needed win for Madrid and a confidence boost after a run of poor results as they prepare to host Manchester City in their Champions League semifinal first leg on Tuesday.
"I'm really, really happy. We talked this week about how it had been a long time since Madrid won this competition and I personally was lacking it too," Rodrygo said. "I scored two goals ... uffff, it's a very special night for me.
"I always said I wanted this one, because it was the one I was missing. But I want more, a lot more. This competition is special and today I saw that."
Since winning their last Copa del Rey nine years ago, the 14-time European Cup winners had won four Champions Leagues while falling short in the Spanish cup.
That changed on Saturday, when they defeated an Osasuna that were seeking their first major title in club history after losing their only other Copa del Rey final in 2005. Madrid's 20 Copa del Rey titles put them behind only Barcelona (31) and Athletic Bilbao (23).
Yet against Osasuna, they were dominant thanks to a brilliant performance by Vinicius, who was virtually unstoppable down the left channel and was involved in the buildup to both of Rodrygo's goals with superb individual runs.
Rodrygo scored the opener with a tidy finish through a forest of legs after Vinicius dribbled past several defenders on the left wing and delivered a perfect cross with the outside of his boot.
Madrid had almost 65% of the possession and Vinicius created several opportunities that his teammates failed to make the most of.
Rodrygo missed a sitter half an hour into the game after another Vinicius run and Osasuna almost scored on the counter-attack through Abde, but a desperate Dani Carvajal managed to clear the ball off the goal line.
A little later, David Alaba hit the crossbar with a free kick and Vinicius almost scored himself with a curling shot from the edge of the box that went just wide.
But Madrid took their foot off the gas in the second half and allowed Osasuna to level, with Torro finding the net with a low shot from the edge of the penalty area.
Rodrygo, however, scored the winner when he finished from close range after Vinicius' run and cross found Toni Kroos, whose shot deflected off a defender before ending up at the feet of Rodrygo at the far post.
Information from Reuters and the Associated Press was used in this report.
- José María Sánchez Martínez