Al Hilal bow out as Fluminense book semifinal spot

Yassin Bonou was the star of Hilal the whole tournament 
(FIFA photo)
Yassin Bonou was the star of Hilal the whole tournament (FIFA photo)

AMMAN — Fluminense progressed to the semifinals of the FIFA Club World Cup with a hard-fought 2-1 victory over Al Hilal at Camping World Stadium in Florida, ending the Saudi club’s historic run in the tournament.

Despite having 58 per cent possession and more shots on target (four to Fluminense's third), Al Hilal were undone by key moments of quality from the Brazilian side, and a resolute defensive display late in the match.

Fluminense dominated the early stages, capitalising on Al Hilal’s slow start. The breakthrough came in the 40th minute after Joao Cancelo failed to clear a loose ball in the box, allowing Matheus Martinelli to fire home from close range, leaving Yassine Bounou with no chance. Al Hilal responded with urgency before the break, coming close through a Kalidou Koulibaly header, only for the goalkeeper to tip it away at full stretch. A penalty awarded to Al Hilal in stoppage time was overturned by VAR, sending them into the break trailing 1-0.

The second half began with renewed energy from the Saudi side. Just six minutes in, Marcos Leonardo levelled the score, pouncing on a headed pass from Koulibaly to slot home from close range. Al Hilal seemed to be in control, pushing forward with purpose, but were caught off guard against the run of play.

In the 70th minute, substitute Hercules restored Fluminense’s lead with a pinpoint strike from the edge of the box, punishing Al Hilal’s defensive lapse. Despite dominating much of the remainder of the match, Al Hilal could not break down Fluminense’s back line.

Al Hilal manager Simone Inzaghi expressed frustration after the final whistle, saying:

“The players gave everything — we’ve played five matches in a short span, and some refereeing decisions didn’t go our way. We deserved more.”

Fluminense coach Renato Gaucho praised his squad’s belief and execution:

“I told the players to believe in themselves. We stuck to our game plan, and reaching the semi-final is a reward for the team and our loyal supporters.”

Fluminense will now face Chelsea in the semifinals on Tuesday, after the English side edged Palmeiras 2-1 in their own quarter-final clash.

.col-lg-12.second .opinion-widget{border-top:1px solid #D0D0D0;} #widget_1623 .opinions-title {font-size:32px;} #widget_1623 .opinions-title a{font-size:32px;} .first-author{ background-color:#ecedef; } .first-opinion-author-name{ background-color:white; width:max-content; padding:5px; }
.epaper-separator{ height: 1px; width: 100%; background-color: #D0D0D0; margin: 15px 0; }

Today’s Paper

.related-articles .article-widget-sm .article-title{font-size:16px;-webkit-line-clamp:3;} .related-articles .layout-ratio{padding-bottom:55%;}
.alert-success { color :#A3656F ; } .alert-danger { color : red ; } .footer { font-family:Myriad Pro,Arial; } .newspaper-footer{ visibility:hidden; } .socialFixOuter { position: fixed; top: 50%; margin-top: 40px; right: 0; transition: .2s; z-index: 20; height: 217px; width: 40px; } .socialFix { height: 30px; width: 30px; display: block; position: relative; cursor: pointer; background-size: 18px 18px; transition: .2s; background-position: center; background-repeat: no-repeat; border-radius: 2px; margin-top: 1px; } .socialFix:hover { width: 40px; margin-left: -10px; } .app-badge-img { height: 36px; width: auto; } @media (max-width: 768px) { .app-badge-img { height: 32px; } .app-badges { justify-content: center !important; } }
document.addEventListener("DOMContentLoaded", function () { const socialFix = document.querySelector(".socialFixOuter"); if (!socialFix) return; let firstInteraction = false; let hideTimeout = null; function checkMobileScreen() { if (window.innerWidth < 768) { socialFix.style.display = "none"; } else { socialFix.style.display = "block"; } } checkMobileScreen(); window.addEventListener("resize", checkMobileScreen); function handleFirstInteraction() { if (firstInteraction) return; if (window.innerWidth < 768) return; firstInteraction = true; socialFix.style.right = "-25px"; } socialFix.addEventListener("mouseenter", function () { if (window.innerWidth < 768) return; if (hideTimeout) clearTimeout(hideTimeout); socialFix.style.right = "0"; }); socialFix.addEventListener("mouseleave", function () { if (window.innerWidth < 768) return; if (hideTimeout) clearTimeout(hideTimeout); hideTimeout = setTimeout(() => { socialFix.style.right = "-25px"; }, 500); }); ["click", "touchstart"].forEach((evt) => { socialFix.addEventListener(evt, handleFirstInteraction); }); }); function validateEmail(email) { if (email.length > 255) return false; const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/; if (!emailRegex.test(email)) return false; if (email.includes('..') || email.startsWith('.') || email.endsWith('.')) return false; return true; } function sanitizeInput(input) { input = input.replace(/<[^>]*>/g, ''); input = input.replace(/javascript:/gi, ''); input = input.replace(/on\w+\s*=/gi, ''); input = input.replace(/[<>"'&(){}[\]]/g, ''); return input.trim(); } document.addEventListener('DOMContentLoaded', function () { function showModal(message, type) { const messageContainer = document.getElementById("messageContainerFooter"); messageContainer.textContent = message; messageContainer.className = `alert alert-${type} mt-3`; messageContainer.classList.remove("d-none"); setTimeout(() => { messageContainer.classList.add("d-none"); }, 5000); } document.getElementById("emailFormFooter").addEventListener("submit", function(event) { event.preventDefault(); const emailInput = document.getElementById("emailFooter"); const email = sanitizeInput(emailInput.value.trim()); if (!validateEmail(email)) { showModal('Invalid email format', 'danger'); return; } const formData = new FormData(); formData.append('email', email); fetch('/subscribeNewsletter', { method: "POST", body: formData, headers: { "Accept": "application/json", "X-Requested-With": "XMLHttpRequest" } }) .then(response => { if (!response.ok) { showModal("Error submitting email. Try again.", 'danger'); } return response.json(); }) .then(data => { showModal(data.message, 'success'); }) .catch(error => { showModal("Error submitting email. Try again.", 'danger'); }); }); });