Ronaldo ends German curse, lifts Portugal to Nations League final

MUNICH: Cristiano Ronaldo scored the winner in a 2-1 victory over Germany in Munich on Wednesday, sending Portugal through to the Nations League final and breaking his run of bad fortune against the Germans.
Ronaldo’s 68th-minute tap-in, a record-extending 137th international goal, sealed a first win over Germany after five losses – his longest streak against any national side without tasting victory.
After a stuttering first half, Florian Wirtz produced a moment of magic to give Germany the lead three minutes after half-time, starting and finishing a clever burst through the middle and heading in the opener.
Portugal’s Francisco Conceicao ran 35 metres to score a brilliant solo goal, levelling things up with half an hour remaining.
The stage was then set for Ronaldo, who had missed two solid chances earlier, to land the telling blow – turning in a Nuno Mendes pass from close range.
Portugal, winners of the inaugural Nations League in 2019, will now face either European champions Spain or France in Sunday’s final at the same venue.
The loss is a setback for Julian Nagelsmann’s Germany, who had lost just one of their previous 17 games.
Portugal had four players backing up from winning Saturday’s Champions League final – and the ensuing celebrations – but it was Germany who struggled to find rhythm early.
The match started 10 minutes late due to a violent storm which left hailstones scattered across the turf.
Aleksandar Pavlovic mislaid several passes while Portugal’s approach of pressing Jonathan Tah almost paid dividends, with the defender insecure in possession.
Ronaldo, greeted by Portuguese cheers and German boos every time he came near the ball, almost scored the opener six minutes in, but his shot was claimed by old La Liga sparring partner Marc-André ter Stegen, playing his first match for Germany since September 2024.
Wirtz opener
Germany’s best chance of the opening half fell to debutant Nick Woltemade with 18 minutes gone, but the 1.98-metre-tall striker’s low shot was well saved by Diogo Costa.
Ronaldo was inches away from giving Portugal the lead when the visitors broke immediately after half-time, but he was unable to get enough of his boot on a clever Nuno Mendes cross with an open goal beckoning.
Germany took less than a minute to punish the miss. Wirtz tiptoed down the left side, attracting three defenders before laying off for Joshua Kimmich.
The German captain chipped it over the Portugal defence and back to Wirtz, who expertly guided a low header into the bottom right corner.
Both sides made three changes on the 60-minute mark, but it was Roberto Martínez whose substitutions had the telling impact.
Five minutes after coming on, Conceicao shed Robin Gosens with a shimmy near the halfway line and advanced goalwards before unleashing a superb curling shot past the desperate fingers of Ter Stegen.
Ronaldo then put Portugal in front, nervelessly tapping in a Nuno Mendes pass to make up for his previous misses – his 137th goal for Portugal in his 219th international.
Munich-born Karim Adeyemi rattled the crossbar with eight minutes remaining, but Germany could not find an equaliser and will need to be content with a third-placed match in Stuttgart on Sunday.
setTimeout(function(){
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”https://www.geo.tv/assets/front/js/lazysizes.min.js”;
document.body.appendChild(scriptElement);
}, 1000);
//setTimeout(function(){ $(‘.medium-insert-images’).find(‘figure’).show() }, 3000);
var loadDeferredJS = function() {
var lazyloadjs = [‘https://www.geo.tv/assets/front/js/lazysizes.min.js’];
var alljs = [‘https://www.geo.tv/assets/front/js/ui/thirdparty.js?ver=133’];
var jqueryjs = [‘https://www.geo.tv/assets/front/js/ui/jquery.min_new.js?ver=43’];
var bootstrapjs = [‘https://www.geo.tv/assets/front/js/ui/bootstarp.js?ver=55’];
var sliderjs = [‘https://www.geo.tv/assets/front/js/ui/swiper.min.js’];
var firebaseappjs = [‘https://www.gstatic.com/firebasejs/8.10.1/firebase-app.js’];
var firebasejs = [‘https://www.gstatic.com/firebasejs/8.10.1/firebase-analytics.js’,’https://www.gstatic.com/firebasejs/8.10.1/firebase-messaging.js’];
var firebasejs_tokenjs = [‘https://www.geo.tv/assets/front/js/push_notification.js?v=1.511’];
var alljscustom = [‘https://www.geo.tv/assets/front/js/ui/my.js?ver=232366′,’https://www.geo.tv/assets/front/js/mycustom.js?ver=646’];
/*setTimeout(function(){
lazyloadjs.forEach(function (item,index) {
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.src = item;
document.body.appendChild(scriptElement);
});
}, 500);*/
setTimeout(function(){
jqueryjs.forEach(function (item,index) {
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.src = item;
document.body.appendChild(scriptElement);
});
}, 1000);
// setTimeout(function(){
// bootstrapjs.forEach(function (item,index) {
// var scriptElement=document.createElement(‘script’);
// scriptElement.type=”text/javascript”;
// scriptElement.src = item;
// document.body.appendChild(scriptElement);
// });
// }, 2000);
const jqueryIntervalcheck = setInterval(function () {
if(typeof jQuery !== “undefined”){
clearInterval(jqueryIntervalcheck);
setTimeout(function(){
sliderjs.forEach(function (item,index) {
if(item == ‘https://www.geo.tv/assets/front/js/ui/swiper.min.js’){
var story_embed_gallery = $(‘.story-area’).find(‘.embedgallery’).length;
//var story_embed_gallery = 0;
if(parseInt(story_embed_gallery) > 0){
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.src = item;
document.body.appendChild(scriptElement);
}
}
});
}, 100);
setTimeout(function(){
alljscustom.forEach(function (item,index) {
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.src = item;
document.body.appendChild(scriptElement);
});
}, 1300);
/*const jqueryIntervalcount = setInterval(function () {
if(typeof jQuery !== “undefined”){
clearInterval(jqueryIntervalcount);*/
if($(‘.infogram-embed’).length > 0 || $(’embedinfogram’).length > 0)
{
!function (e, t, n, s) {
var i = “InfogramEmbeds”, o = e.getElementsByTagName(t)[0], d = /^http:/.test(e.location) ? “http:” : “https:”;
if (/^/{2}/.test(s) && (s = d + s), window[i] && window[i].initialized)window[i].process && window[i].process(); else if (!e.getElementById(n)) {
var a = e.createElement(t);
a.async = 1, a.id = n, a.src = s, o.parentNode.insertBefore(a, o)
}
}(document, “script”, “infogram-async”, “https://e.infogram.com/js/dist/embed-loader-min.js”);
}
if($(‘.flourishClass’).length > 0)
{
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”https://public.flourish.studio/resources/embed.js”;
document.body.appendChild(scriptElement);
}
if($(‘.apester-media’).length > 0)
{
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”https://static.apester.com/js/sdk/latest/apester-sdk.js”;
document.body.appendChild(scriptElement);
}
if($(‘.twitter-tweet’).length > 0)
{
var tweetObj = document.getElementsByClassName(‘tweetPost’);
var counter_tweet = 0;
if (tweetObj.length == 0) {
tweetObj = document.getElementsByClassName(‘twitter-tweet’);
$.each(tweetObj, function (i, v) {
$(this).attr(‘id’, ‘twitter-post-widget-‘ + i);
});
} else {
$.each(tweetObj, function (i, v) {
if($(this).find(‘.twitter-tweet’).length > 0){
$(this).find(‘.twitter-tweet’).attr(‘id’, ‘twitter-post-widget-‘ + counter_tweet);
counter_tweet++;
}
});
}
$.getScript(‘https://platform.twitter.com/widgets.js’, function () {
var k = 0;
var tweet = document.getElementById(‘twitter-post-widget-‘ + k);
var tweetParent, tweetID;
while (tweet) {
tweetParent = tweet.parentNode;
//tweetID = tweet.dataset.tweetId;
tweetID = tweetParent.getAttribute(“id”);
if(tweetID === null){
tweetID = tweet.dataset.tweetId;
}
//var tweetVideoClass = tweet.getAttribute(‘class’).split(‘ ‘)[0];
$(tweet).remove();
twttr.widgets.createTweet(
tweetID,
tweetParent
);
k++;
tweet = document.getElementById(‘twitter-post-widget-‘ + k);
}
});
/*==============*/
var tweetObjVid = document.getElementsByClassName(‘tweetVideo’);
var counter_tweet = 0;
if (tweetObjVid.length == 0) {
tweetObjVid = document.getElementsByClassName(‘twitter-video’);
$.each(tweetObjVid, function (i, v) {
$(this).attr(‘id’, ‘twitter-vid-widget-‘ + i);
});
} else {
$.each(tweetObjVid, function (i, v) {
if($(this).find(‘.twitter-video’).length > 0){
$(this).find(‘.twitter-tweet’).attr(‘id’, ‘twitter-vid-widget-‘ + counter_tweet);
counter_tweet++;
}
});
}
$.getScript(‘//platform.twitter.com/widgets.js’, function () {
var v = 0;
var tweetVid = document.getElementById(‘twitter-vid-widget-‘ + v);
var tweetParentVid, tweetIDVid;
while (tweetVid) {
tweetParentVid = tweetVid.parentNode;
//tweetIDVid = tweetVid.dataset.tweetId;
tweetIDVid = tweetParentVid.getAttribute(“id”);
if(tweetIDVid === null){
tweetIDVid = tweet.dataset.tweetId;
}
$(tweetVid).remove();
twttr.widgets.createVideo(
tweetIDVid,
tweetParentVid
);
v++;
tweetVid = document.getElementById(‘twitter-vid-widget-‘ + v);
}
});
}
if($(‘.instagram-media’).length > 0){
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”https://platform.instagram.com/en_US/embeds.js”;
document.body.appendChild(scriptElement);
}
if($(‘.tiktok-embed’).length > 0){
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”https://www.tiktok.com/embed.js”;
document.body.appendChild(scriptElement);
}
if($(‘.threadsPost’).length > 0){
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”https://www.threads.net/embed.js”;
document.body.appendChild(scriptElement);
}
if($(‘.fb-video’).length > 0 || $(‘.fb-post’).length > 0){
var container_width = $(window).width();
if(container_width 0){
let embed_url = $(‘.fb-video’).attr(‘data-href’);
let htmla=”
‘;
$(‘.fb-video’).parent(‘.embed_external_url’).html(htmla);
}
else{
let embed_url = $(‘.fb-post’).attr(‘data-href’);
let htmla=”
‘;
}
}
$(‘body’).prepend(‘
‘);
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”https://connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.11&appId=580305968816694″;
document.body.appendChild(scriptElement);
}
var scriptElement=document.createElement(‘script’);
scriptElement.type=”text/javascript”;
scriptElement.setAttribute=”async”;
scriptElement.src=”//dcc4iyjchzom0.cloudfront.net/widget/loader.js”;
document.body.appendChild(scriptElement);
/*}
},100);*/ }
},100);
};
var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame || window.msRequestAnimationFrame;
var loadDeferredJSCaptcha = function() {
var addJSNode = document.getElementById(“captchejs”);
var replacement = document.createElement(“div”);
replacement.innerHTML = addJSNode.textContent;
document.body.appendChild(replacement);
addJSNode.parentElement.removeChild(addJSNode);
};
window.addEventListener(‘load’, loadDeferredJS);
//window.addEventListener(‘load’, loadDeferredJSCaptcha);
[title_words_as_hashtags