
Table of Contents
FOOTBALL. WOW.
Real Madrid progressed to the Champions League final thanks to a stunning comeback victory over Manchester City in the semi-final on Wednesday night.
Pep Guardiola’s side came into the tie against Madrid with a 4-3 lead after the first leg in Manchester, and looked set for a place in the final against Liverpool having taken the lead in the second leg through Riyad Mahrez.
However, Carlo Ancelotti’s side scored in the 90th minute and in added time to take the game to extra time – before Karim Benzema calmly converted his penalty in the first-half of extra-time to give the home side their first lead in the tie.
Should City have been reduced to 10 men?
City started the game well, edging possession and looking the more likely to open the scoring. However, many fans believe that the away side should’ve been reduced to 10-men in the first half.
Kevin De Bruyne was fouled by Madrid midfielder Casemiro, which led to both sets of players clashing as a result. As the players came together, Spanish international Laporte began to slightly push Modric as the Croatian attempted to speak to the referee.
Following this, the City centre-back appeared to slap the 36-year-old in the face, before dropping to the ground holding his own face.
This angered Modric and several other Madrid players, with the veteran midfielder and Laporte both being shown a yellow card as a result of the incident.

Grealish’s costly miss
When City were winning 1-0 on the night – and 5-3 on aggregate – substitute Jack Grealish had a great opportunity to double the away side’s lead.
He combined well with fellow substitute Oleksandr Zinchenko, allowing the former Aston Villa man to race through on goal. The city man worked his way into the box and past Éder Militão, before unleashing a shot on goal.
Madrid goalkeeper Thibaut Courtois appeared to be have misjudged the strike, which saw it beat him – only to be cleared off the line by Ferland Mendy before Phil Foden could tap the ball home.
Look how close City were pic.twitter.com/93f1vVrALQ
— FootballJOE (@FootballJOE) May 4, 2022
With a three goal advantage over Madrid, late into the tie, it would surely have seen Guardiola’s side progress to the final of the Champions League had it gone in.
Rodrygo saves the tie, before Benzema strikes
Despite Grealish’s late miss, it still looked as though the away side would win the semi-final, both on the night and on aggregate.
However, as the clock ticked closer towards the final whistle, Madrid substitute Rodrygo saved the day for the recently-crowned LaLiga champions.
The Brazilian pulled a goal back in the 90th minute to reduce the deficit to one, getting on the end of a cross to poke his strike past Ederson.
Then, just 1 minute later and into added-time, the 21-year-old put Madrid ahead of the night and level on aggregate with a stunning header.
FOOTBALL. pic.twitter.com/9KSOkL7D5t
— FootballJOE (@FootballJOE) May 4, 2022
With the tie going to extra-time, Ancelotti’s men took the lead for the first time through their talisman Benzema, who converted his penalty after Rúben Dias fouled the Frenchman.
REAL MADRID HAVE GONE AHEAD! 😮
And of course, Karim Benzema had to get in on the goals! 🎯
This game is something else!#UCL pic.twitter.com/2XMX5teIhy
— Football on BT Sport (@btsportfootball) May 4, 2022
Despite City’s late onslaught, Madrid were able to see the tie out and secure their place in the Champions League final, where they will face-off against Liverpool later this month.
Related links:
var host="www.joe.co.uk"; var element = document.createElement('script'); var firstScript = document.getElementsByTagName('script')[0]; var url="https://quantcast.mgr.consensu.org" .concat('/choice/', 'wFs6Tqd6-pgRC', '/', host, '/choice.js') var uspTries = 0; var uspTriesLimit = 3; element.async = true; element.type="text/javascript"; element.src = url;
firstScript.parentNode.insertBefore(element, firstScript);
function makeStub() { var TCF_LOCATOR_NAME = '__tcfapiLocator'; var queue = []; var win = window; var cmpFrame;
function addFrame() { var doc = win.document; var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]);
if (!otherCMP) { if (doc.body) { var iframe = doc.createElement('iframe');
iframe.style.cssText="display:none"; iframe.name = TCF_LOCATOR_NAME; doc.body.appendChild(iframe); } else { setTimeout(addFrame, 5); } } return !otherCMP; }
function tcfAPIHandler() { var gdprApplies; var args = arguments;
if (!args.length) { return queue; } else if (args[0] === 'setGdprApplies') { if ( args.length > 3 && args[2] === 2 && typeof args[3] === 'boolean' ) { gdprApplies = args[3]; if (typeof args[2] === 'function') { args[2]('set', true); } } } else if (args[0] === 'ping') { var retr = { gdprApplies: gdprApplies, cmpLoaded: false, cmpStatus: 'stub' };
if (typeof args[2] === 'function') { args[2](retr); } } else { queue.push(args); } }
function postMessageEventHandler(event) { var msgIsString = typeof event.data === 'string'; var json = {};
try { if (msgIsString) { json = JSON.parse(event.data); } else { json = event.data; } } catch (ignore) {}
var payload = json.__tcfapiCall;
if (payload) { window.__tcfapi( payload.command, payload.version, function(retValue, success) { var returnMsg = { __tcfapiReturn: { returnValue: retValue, success: success, callId: payload.callId } }; if (msgIsString) { returnMsg = JSON.stringify(returnMsg); } event.source.postMessage(returnMsg, '*'); }, payload.parameter ); } }
while (win) { try { if (win.frames[TCF_LOCATOR_NAME]) { cmpFrame = win; break; } } catch (ignore) {}
if (win === window.top) { break; } win = win.parent; } if (!cmpFrame) { addFrame(); win.__tcfapi = tcfAPIHandler; win.addEventListener('message', postMessageEventHandler, false); } };
makeStub();
var uspStubFunction = function() { var arg = arguments; if (typeof window.__uspapi !== uspStubFunction) { setTimeout(function() { if (typeof window.__uspapi !== 'undefined') { window.__uspapi.apply(window.__uspapi, arg); } }, 500); } };
var checkIfUspIsReady = function() { uspTries++; if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { console.warn('USP is not accessible'); } else { clearInterval(uspInterval); } }; if (typeof window.__uspapi === 'undefined') { window.__uspapi = uspStubFunction; var uspInterval = setInterval(checkIfUspIsReady, 6000); } // This callback is triggered on each page load __tcfapi('addEventListener', 0, function(tcData, success) { if (success && (tcData.eventStatus == 'useractioncomplete' || tcData.eventStatus == 'tcloaded')) { processCmpData(tcData); } }); function processCmpData(tcData) { // Flag that CMP has been processed. consentManager.cmpProcessed = true; // Permutive disabling needed? if (tcData.purpose.consents[1] && tcData.purpose.consents[3]) { consentManager.permutive.isAllowed = true; } if (consentManager.isAllowed('permutive')) { window.localStorage.removeItem('permutive-opt-out'); } else { window.localStorage.setItem('permutive-opt-out', 'true'); } consentManager.setUserConsent(tcData); if(consentManager.isAllowed('google')) { (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l="+l:"';j.async=true;j.src="https://www.googletagmanager.com/gtm.js?id="+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-NTW9BPH'); } // Consent String is needed as DFP target consentManager.setConsentString(tcData.tcString); consentManager.trackPublisherConsentLevel(tcData.publisher.consents); consentManager.trackVendorConsentLevel(tcData.vendor.consents); /** * According to Google policies, if Publisher Purpose 1 is revoked, we should not display ads at all * Check https://support.google.com/admanager/answer/9805023?hl=en for more information * Here we update the flag that points if ads should be rederer or not. */ consentManager.hideAds(tcData.purpose.consents[1]); // Posts tagged as sensitive shouldn't be showing any ads. Since we have a way to control ads viewability through // the consent manager, it's easy to check for the posts tags and flagged if they should shown or not. // According to Google policies, if Publisher Purpose 1 is revoked, we should not display ads at all // Check https://support.google.com/admanager/answer/9805023?hl=en for more information if (consentManager.hasBeenProcessed() && consentManager.displayAds) { consentManager.renderAds(); } // If consent was processed once the page was loaded, there are some ads that may not appear. Let's run prebid again. if (typeof executeParallelAuctionAlongsidePrebid !== 'undefined' && !consentManager.prebidProcessed && consentManager.displayAds) { executeParallelAuctionAlongsidePrebid() } // Facebook and Twitter are non IAB vendors, so we need to check their consents using a different callback __tcfapi('getNonIABVendorConsents', 0, function(consent, success) { if (success && consent.gdprApplies) { consentManager.setUserNonIabConsent(consent); } }) if (!consentManager.sentEventFbPixel && consentManager.isAllowed('facebook')) { !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function(){n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)};if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','//connect.facebook.net/en_US/fbevents.js'); fbq('init', '1294117580618248'); fbq('track', "PageView"); fbq('track', 'ViewContent'); consentManager.sentEventFbPixel = true; } if (!consentManager.sentEventTwPixel && consentManager.isAllowed('twitter')) { !function(e,t,n,s,u,a){e.twq||(s=e.twq=function(){s.exe?s.exe.apply(s,arguments):s.queue.push(arguments); },s.version='1.1',s.queue=[],u=t.createElement(n),u.async=!0,u.src="https://static.ads-twitter.com/uwt.js", a=t.getElementsByTagName(n)[0],a.parentNode.insertBefore(u,a))}(window,document,'script'); // Insert Twitter Pixel ID and Standard Event data below twq('init','o1f6l'); twq('track','PageView'); consentManager.sentEventTwPixel = true; } }