Match News

In-depth match previews and recaps for football matches from leagues around the world. Each preview includes team form analysis, key player insights, head-to-head records, and score predictions to help you stay ahead of the game.

Liverpool vs PSG
PreviewUEFA Champions LeaguePrediction: 2-1

Liverpool vs PSG

Liverpool host PSG at Anfield in the second leg of their UEFA Champions League quarter-final, trailing 2-0 from the first leg at the Parc des Princes. Arne Slot's side need a three-goal win to advance outright — anything less sends the French side through. PSG arrive in stunning form — five straight wins, averaging 3.4 goals per game. Khvicha Kvaratskhelia is the man to watch: eight UCL goals this season, including one in the first leg, and virtually unstoppable on current form. Liverpool did at least rediscover some confidence with a 2-0 Premier League win over Fulham, ending a three-game losing run. Mohamed Salah, notably absent from the first leg in Paris, is set to lead the attack, though the hosts remain without Alisson Becker and Conor Bradley. The Anfield atmosphere can conjure magic, but PSG's quality and two-goal cushion make a full turnaround an enormous ask. Liverpool should push hard early, yet the visitors look well-equipped to absorb pressure and punish on the break. Our prediction: 2-1

Kick-off: 19:00
Atletico Madrid vs Barcelona
PreviewUEFA Champions LeaguePrediction: 1-1

Atletico Madrid vs Barcelona

Atlético Madrid hold a commanding 2-0 aggregate lead heading into this UEFA Champions League quarterfinal second leg at the Metropolitano. Barcelona have never overturned a two-goal deficit in a UEFA tie while playing the return away from home — making a historic remontada their only path to the semifinals. Atlético rotated for a 2-1 loss to Sevilla, while Barcelona arrived in form after a 4-1 derby win over Espanyol. The visitors are without suspended Pau Cubarsi — red-carded in the first leg — plus injured Raphinha and Andreas Christensen. Atlético miss Marc Pubill through suspension, with José Giménez a doubt; Julian Álvarez leads the attack, boasting nine Champions League goals this season — a club record — alongside Antoine Griezmann. Atlético have knocked Barcelona out of the Champions League at this stage in both 2014 and 2016. Lamine Yamal and Ferran Torres can hurt them on the counter, but the two-goal deficit looks too steep to overturn. Our prediction: 1-1.

Kick-off: 19:00
Manchester United vs Leeds United
RecapPremier League

Manchester United vs Leeds United (1 - 2)

In a stunning upset at Old Trafford, Leeds United ended a 45-year wait for a win on this ground, beating Manchester United 2-1 to complete one of the most memorable away results of the Premier League season. Noah Okafor was the architect of the victory, netting a brace inside the opening half-hour — slotting home in the 5th minute before converting again on 29, with Brenden Aaronson providing the assist for the second. United's night darkened further when Lisandro Martínez was shown a straight red card following a VAR review on 56 minutes. Casemiro gave the home faithful a lifeline with a header on 69 minutes, but Leeds kept their nerve. The defeat leaves Manchester United nine points off the Champions League places with six games remaining, all but ending their European hopes. For Leeds, the three points push them four points clear of the drop zone — a precious cushion as the season enters its final stretch.

Lyon vs Lorient
RecapLigue 1

Lyon vs Lorient (2 - 0)

After nine matches without a win, Lyon ended the drought with a deserved 2-0 defeat of Lorient at the Groupama Stadium. The real story was the halftime intervention: manager Paulo Fonseca threw on Endrick — a player he had publicly benched and criticised beforehand — and it changed everything. Endrick's instant impact was electric. His cross from the right on 49 minutes was headed in by Roman Yaremchuk for his first Ligue 1 goal, and just seven minutes later Corentin Tolisso finished at the far post after Endrick's effort was deflected by goalkeeper Yvon Mvogo. A 66th-minute VAR check for a foul on Bamba Dieng came to nothing, keeping Lyon comfortable. Goalkeeper Dominik Greif — named Man of the Match — kept Lorient at bay with a vital first-half save from Bamba Dieng. The three points lift Lyon to fifth, one point behind Marseille in the European race. For Lorient, a third straight defeat stalls an otherwise solid return to the top flight.

Mainz vs Freiburg
RecapBundesliga

Mainz vs Freiburg (0 - 1)

Freiburg silenced the MEWA Arena on matchday 29, claiming a 1-0 win away at Mainz. The decisive blow landed just two minutes after the restart, when Lucas Höler's clinical header gave the visitors an advantage they never relinquished. Höler met a cross from the left, flicked on by Lienhart, and guided his effort from eight metres into the far corner past Batz (47'). Freiburg stayed hungry — Batz was forced into two sharp stops in the 60th and 61st minutes to keep the gap at one. Mainz's clearest chance came through Widmer in the 79th, but his close-range effort was comfortably held. Höler picked up a yellow card in the 73rd for a cynical foul, the game's only booking. The three points are a timely boost for Freiburg as the Bundesliga heads into its final weeks. Mainz will be left to rue a flat attacking display that never truly threatened to turn the match around.

Dender vs Zulte Waregem
RecapFirst Division A

Dender vs Zulte Waregem (1 - 2)

Zulte Waregem pulled off a gutsy comeback to beat Dender 2-1 in the relegation playoffs on Sunday, with Joseph Opoku netting twice in a seven-minute spell to flip the script on the hosts. David Hrncar gave Dender the lead just three minutes into the second half, but Waregem responded swiftly. Opoku equalized on 55 before converting again at 62, latching onto a smart ball from Jeppe Erenbjerg. The drama kept coming late on: referee Vergoote twice pointed to the spot for the visitors, but Dender keeper Gauthier Gallon was the hero — saving a retaken penalty from Erenbjerg and then denying Enrique Lofolomo's follow-up effort. The win gives Zulte Waregem mathematical certainty of staying up, and as a side effect also confirms Cercle Brugge's survival. Dender are in real danger but still have four matches to rescue their Pro League status.

Stuttgart vs Hamburg
RecapBundesliga

Stuttgart vs Hamburg (4 - 0)

Stuttgart put on a commanding show at home, demolishing Hamburger SV 4-0 on matchday 29. The hosts were in full control from the first whistle, never letting their guests breathe. Angelo Stiller broke the deadlock in the 22nd minute, assisted by Jamie Leweling, and Chris Führich doubled the lead on 31 minutes off a neat Ermedin Demirovic pass. Maximilian Mittelstädt made it three on 56 minutes before Bilal El Khannouss rounded things off in the 86th. Deniz Undav spurned a late penalty — blazing over the bar in the 82nd — and a Demirovic strike was chalked off by VAR for offside. The result lifts Stuttgart above RB Leipzig into third place, keeping their Champions League push firmly on track. For Hamburger SV, still without the injured Luka Vuskovic and Albert Lokonga and suspended Miro Muheim, it was a fourth straight game without a win — and their season is suddenly looking a lot shakier.

Toulouse vs Lille
RecapLigue 1

Toulouse vs Lille (0 - 4)

Lille were ruthless at the Stadium de Toulouse, cruising to a commanding 4-0 win to reclaim third place in Ligue 1. The victory carried extra emotion, as players rallied around coach Bruno Genesio during goal celebrations following a personal family tragedy. Thomas Meunier opened the scoring on 23 minutes with a well-placed cross-shot, assisted by Hákon Arnar Haraldsson. The second half started with a turning point when Mark McKenzie was sent off on 48 minutes for fouling Matías Fernández-Pardo inside the box, leaving Toulouse down to ten. Romain Perraud capitalised immediately, curling in a direct free kick on 50 minutes. Fernández-Pardo then added a third five minutes later from a Benjamin André assist, before Olivier Giroud sealed the rout from the penalty spot on 88. For Lille, a fifth straight away victory moves them a point above Marseille in the Champions League race. Toulouse stay tenth — safe, but with little left to play for this season.

Nice vs Le Havre
RecapLigue 1

Nice vs Le Havre (1 - 1)

Nice and Le Havre played out a tense 1-1 draw at the Allianz Riviera on Matchday 29 of Ligue 1, a result that settled nothing in what has become a genuine relegation dogfight. Samatta gave Le Havre the lead just before half-time, converting Ndiaye's pass in the 41st minute for his first goal of the season. Nice levelled in the 59th minute through Abdi, who pounced at the back post to turn home a delivery by Clauss. Despite dominating possession and registering 11 shots on target to Nice's five, Le Havre couldn't find the winner their pressure deserved. The point leaves the two sides just one point apart in the standings with five matches to go. Le Havre have now gone seven consecutive games without a win, while Nice remain uncomfortably close to the playoff zone. For both clubs, the pressure is mounting fast.

Chelsea vs Manchester City
RecapPremier League

Chelsea vs Manchester City (0 - 3)

Manchester City produced a devastating second-half blitz to beat Chelsea 3-0 at Stamford Bridge, with Rayan Cherki the orchestrating force in a thoroughly one-sided second 45 minutes. Nico O'Reilly headed City in front on 51 minutes from a Cherki cross, before Marc Guehi doubled the advantage six minutes later after more intricate work from the Frenchman. Jeremy Doku completed the rout on 68 minutes, pouncing after Moïsés Caicedo gifted possession in Chelsea's own half. Marc Cucurella had seen a first-half effort ruled out for offside, while O'Reilly limped off after scoring — the one sour note for City. The win reignites the title race: Manchester City now sit just six points behind leaders Arsenal with a game in hand, and face the Gunners at the Etihad next weekend. For Chelsea, a third straight league defeat leaves them four points adrift of the Champions League places at a critical moment of the season.

Anderlecht vs Gent
RecapFirst Division A

Anderlecht vs Gent (3 - 1)

Anderlecht produced a stunning comeback at Lotto Park on Sunday, coming from behind to beat Gent 3-1 and grab a crucial win in the Belgian Pro League championship play-offs. Gent struck first when Wilfried Kanga stepped up to convert a VAR-awarded penalty in the 22nd minute. The visitors defended stubbornly as Anderlecht pressed with 65% possession but little reward. The deadlock finally broke in the 79th minute when Yari Verschaeren leveled. What followed was extraordinary: Tristan Degreef turned the tie in Anderlecht's favor in the 93rd minute, then Adriano Bertaccini drove the knife in further in the 97th to complete a breathless turnaround. The three points are badly needed for Anderlecht after a 4-2 opening defeat away at Club Brugge. Gent, who failed to win their opener against Mechelen either, now face a steep uphill task in the race for the title.

AZ vs Heerenveen
RecapEredivisie

AZ vs Heerenveen (3 - 0)

AZ Alkmaar swept aside SC Heerenveen 3-0 at the AFAS Stadion on Sunday, with a blistering opening burst from Sven Mijnans setting the tone before the match had barely begun. Mijnans struck twice in quick succession — in the 7th and 9th minutes — after an earlier AZ effort was chalked off by VAR. It was a ruthless start that left Heerenveen chasing shadows. Oliver Braude was booked for the visitors in the 41st minute as frustration set in, and Troy Parrott put the result beyond any doubt with a composed finish in the 71st. AZ finished the game with an overwhelming 17 shots to Heerenveen's five. The victory moves AZ up to sixth in the Eredivisie with 48 points from 30 games, keeping their European ambitions firmly intact. For Heerenveen, sitting eighth on 44 points, the four-point gap to their hosts underlines the work still needed to push back into contention.

FC Cologne vs Werder Bremen
RecapBundesliga

FC Cologne vs Werder Bremen (3 - 1)

FC Köln ended a nine-game winless run with a vital 3-1 victory over Werder Bremen in a Bundesliga relegation showdown on Sunday. The game turned on a pivotal moment when Bremen captain Marco Friedl was sent off in the 24th minute for a last-man foul, forcing the visitors to dig in with ten men for the remainder of the match. Said El Mala had already put the hosts ahead from the penalty spot in the 11th minute after Jakub Kamiński was fouled. Ragnar Ache doubled the lead in the 65th minute following a corner — Özkacar having first struck the post — before Romano Schmid pulled one back with a VAR-awarded penalty in the 75th minute, converting after the review confirmed Ache had fouled Olivier Deman. Isak Jóhannesson ended any hope of a comeback with a cool finish deep in stoppage time. The win — Köln's first under interim coach René Wagner — lifts them to 13th place, five points above the relegation play-off zone. Werder Bremen slide to 15th after a second successive defeat, uncomfortably close to the drop with five rounds to play.

Sunderland vs Tottenham Hotspur
RecapPremier League

Sunderland vs Tottenham Hotspur (1 - 0)

Sunderland made it a rough welcome to the Premier League for new Tottenham boss Roberto De Zerbi, grinding out a 1-0 win at the Stadium of Light to deepen Spurs' relegation crisis. Nordi Mukiele settled it in the 61st minute, driving in from the edge of the box at the end of a slick 12-pass move — his shot caught a wicked deflection off Micky van de Ven and left keeper Antonin Kinsky completely stranded. Tottenham had a penalty claim overturned in the 21st minute, Dominic Solanke squandered a gilt-edged chance, and skipper Cristian Romero limped off in tears with an undisclosed injury — a miserable afternoon all round. Spurs are now winless in 14 Premier League games — their second-longest such run in club history — sitting two points adrift in the drop zone with just six matches left. Sunderland, by contrast, climbed into the top half of the table, their fairytale return to the top flight showing no signs of slowing down.

Crystal Palace vs Newcastle United
RecapPremier League

Crystal Palace vs Newcastle United (2 - 1)

Crystal Palace snatched a dramatic 2-1 home win over Newcastle at Selhurst Park, with substitute Jean-Philippe Mateta netting twice late on to complete a memorable Eagles comeback.Newcastle looked set for three points after William Osula bundled in a 43rd-minute opener, latching onto Lewis Miley's ball that deflected off Maxence Lacroix. Crystal Palace levelled when Mateta headed home in the 81st minute after coming off the bench. The decisive moment arrived in stoppage time when Sven Botman hauled down Ismaila Sarr inside the box, and Mateta coolly dispatched the penalty into the bottom corner.The win is only Palace's second home Premier League victory since November — a timely boost ahead of their Conference League quarter-final second leg at Fiorentina. For Newcastle, it's another damaging blow to their push for European qualification.

Genk vs OH Leuven
RecapFirst Division A

Genk vs OH Leuven (0 - 0)

Racing Genk and OH Leuven shared a frustrating 0-0 draw at Cegeka Arena, with the hosts firing 17 shots but unable to beat goalkeeper Maxence Prévot. The Leuven stopper was the standout performer, denying Daan Heymans from a Junya Ito cross and Robin Mirisola shortly before half-time. The match's clearest chance fell to the visitors when Ewoud Pletinckx was left completely unmarked inside the box from a Maziz free kick, only to head wide. Five yellows were flashed across the afternoon — Mirisola (42') and Jarne Steuckers (67') for Genk, and Lukasz Lakomy (81'), Óscar Gil (90') and Prévot (90+1') for Leuven in a feisty finish. The dropped points cost Genk their league leadership, with Westerlo leapfrogging them by a single point. Coach Nicky Hayen admitted his team lacked energy and intensity. For OH Leuven, the draw brought rare joy — their first point at Cegeka Arena since August 2020.

PEC Zwolle vs Excelsior
RecapEredivisie

PEC Zwolle vs Excelsior (2 - 2)

A dramatic 2-2 draw at MAC³PARK summed up the relegation anxiety gripping both sides, with Excelsior showing real resilience by clawing back twice to deny PEC Zwolle all three points. Oosting gave the home side a lightning start in the 3rd minute, but Excelsior levelled swiftly through Sanches Fernandes (16'). PEC Zwolle looked to have done enough when Velanas headed home to restore the lead in the 60th minute, exploiting a defensive lapse. The visitors had the last word, though — Wlodarczyk met a perfectly weighted cross from De Regt to head in the equaliser with ten minutes to go (80'). A point apiece does little for either side's nerves. PEC Zwolle remain stuck just above the danger zone, while Excelsior are still without a win after a long barren run — the relegation fight continues for both.

NEC vs Feyenoord
RecapEredivisie

NEC vs Feyenoord (1 - 1)

Danilo broke Feyenoord hearts deep into stoppage time, poking home a 97th-minute equalizer to earn NEC Nijmegen a 1-1 draw at the Goffertstadion — a result that had looked well beyond the hosts for most of the afternoon. Ayase Ueda had put Feyenoord ahead on 18 minutes, converting from close range after Anis Hadj Moussa delivered a teasing cross from a corner. NEC dominated possession but struggled to breach a stubborn visiting defence, and tempers frayed — Philippe Sandler, Ahmetcan Kaplan and Tjaronn Chery all picked up bookings, with a VAR review in the second half adding to the tension. Then, with the points seemingly heading to Rotterdam, Sami Ouaissa teed up Danilo to slot home and send the Goffertstadion into raptures. With PSV already crowned champions, both clubs have their eyes firmly fixed on second place and its direct Champions League berth. Feyenoord drop two crucial points at a critical juncture, while NEC steal a precious one to stay firmly in the European hunt.

Nottingham Forest vs Aston Villa
RecapPremier League

Nottingham Forest vs Aston Villa (1 - 1)

A dramatic own goal and a quick-fire equalizer ensured Nottingham Forest and Aston Villa shared the spoils in a 1–1 draw at the City Ground, with both sides leaving with mixed feelings on Sunday afternoon. Aston Villa took an unexpected lead on 23 minutes when Murillo turned the ball into his own net. Nottingham Forest hit back swiftly, with Neco Williams levelling in the 38th minute to send the sides into the break on equal terms. Villa were also dealt a blow before kick-off when first-choice goalkeeper Emiliano Martínez suffered a muscle injury during the warm-up and was ruled out of the match entirely. The point is precious for Nottingham Forest, who sit 16th and are fighting to avoid relegation — holding a top-four side at home is exactly the kind of result they needed. For Aston Villa, fourth in the table and chasing Champions League qualification, dropping two points against a side scrapping at the bottom will sting.

Mechelen vs Union Saint-Gilloise
RecapFirst Division A

Mechelen vs Union Saint-Gilloise (0 - 1)

Royale Union SG secured a vital away victory at AFAS Stadion, defeating KV Mechelen 1-0 in the Belgian Pro League Champions' Play-offs. The deciding moment arrived right on the stroke of half-time, when defender Ross Sykes headed home to break the deadlock. Sykes connected at 45'+2, meeting a delivery from Rob Schoofs to hand Union SG the lead they would never relinquish. The visitors were the more threatening side throughout, registering 10 shots with five on target while KV Mechelen failed to test the goalkeeper even once. Christian Burgess picked up a yellow card in the 53rd minute, and Raul Florucz came on for Kevin Rodriguez as Union SG managed the game in the second half. The result sends Union SG to the top of the Champions' Play-offs with two wins from two. For KV Mechelen, a fifth-place side that mustered zero shots on target at home, the pressure is mounting.

Heracles vs Ajax
RecapEredivisie

Heracles vs Ajax (0 - 3)

Ajax swept aside Heracles at Erve Asito on Saturday, with two goals in the space of a minute setting the tone for a dominant 3-0 away victory. It was a clinical, no-nonsense performance from the Amsterdam side in front of 12,103 fans. Mika Godts broke the deadlock in the 16th minute, finishing a rapid counter-attack fed by Jorthy Mokio. Just 60 seconds later, Steven Berghuis made it two with a composed left-footed finish assisted by Wout Weghorst. Berghuis completed his brace two minutes into the second half, converting an Oscar Gloukh through ball. Takehiro Tomiyasu was then sent off after a VAR review in the 79th minute, though Ajax were long past caring by then. The result leaves Heracles rooted to the foot of the Eredivisie table with their relegation battle looking increasingly dire. Ajax, meanwhile, stay in the hunt for European football, sitting fifth with one eye on the Europa League qualification places.

Groningen vs Go Ahead Eagles
RecapEredivisie

Groningen vs Go Ahead Eagles (0 - 0)

A goalless stalemate at the Euroborg left FC Groningen wondering what might have been. The hosts dominated from the first whistle, outshooting Go Ahead Eagles 25 to 11, yet never managed to break through despite David van der Werff posing the biggest threat in the first half. With no goals to separate the sides, the drama came from near-misses: Marco Rente headed wide in the 9th minute, De Busser fumbled a van der Werff strike in the 12th before recovering, and Groningen keeper Etienne Vaessen brilliantly clawed away a Mathis Suray effort just before half-time. A penalty appeal for the hosts was waved away in the 88th minute, and substitute Finn Stokkers squandered Eagles' best late chance in injury time. The result leaves Groningen frustrated with their finishing after firing 25 shots without reward, while Go Ahead Eagles — boosted by the return of Dean James following a passport saga — can be satisfied with a resilient defensive showing on the road.

Rennes vs Angers
RecapLigue 1

Rennes vs Angers (2 - 1)

Rennes held on to beat Angers 2-1 at Roazhon Park in a tense Ligue 1 matchday 29 encounter. Franck Haise's side cruised to a two-goal lead before the break, but were made to sweat before seeing out a crucial three points. Angers defender Marius Louër gifted the hosts the lead with an own goal in the 12th minute, and Mousa Al-Tamari made it 2-0 on 25 minutes with a finish set up by Viktor Rongier. Angers gave themselves hope when substitute P. Peter, teed up by Lois Raolisoa, pulled one back on 65 minutes. The drama peaked in the 81st minute when goalkeeper Abdou Sbaï denied Rennes a third by saving a penalty — but the home side held firm. The victory pushes Rennes further into European contention, while Angers remain in serious trouble at the bottom of the table with their survival fight running out of time.

Sint-Truiden vs Club Brugge
RecapFirst Division A

Sint-Truiden vs Club Brugge (1 - 2)

Club Brugge KV came from behind to claim a crucial 2-1 win away at Sint-Truiden on April 11, in the Belgian Pro League Championship play-offs. The decisive shift came off the bench, as substitute Hugo Vetlesen completely changed the complexion of the match with a goal and a hand in the winning penalty. Ryotaro Ito had Sint-Truiden in front at the 22nd minute, capitalising on a struggling Club Brugge side that seemed destined to leave Stayen empty-handed once again. But Vetlesen levelled just three minutes into the second half (48'), then drew a handball from Vanwesemael in the box. Christos Tzolis coolly converted the penalty in the 80th minute, placing it precisely into the side netting for 2-1. The victory was all the sweeter for Club Brugge given that STVV had been unbeaten at Stayen against them for five years. The comeback keeps Club Brugge firmly in title contention, while Sint-Truiden now face a confidence test after conceding their long-standing home advantage in the play-offs.

Sparta Rotterdam vs PSV
RecapEredivisie

Sparta Rotterdam vs PSV (0 - 2)

PSV cruised to a comfortable 0-2 victory at Sparta Rotterdam on Saturday evening, with Guus Til delivering the standout performance of the night at Het Kasteel. Til broke the deadlock inside three minutes and doubled the lead just before half-time in the 40th, before being withdrawn at the interval in favor of Ricardo Pepi. The second half brought controversy when Joel van den Berg received a red card in the 73rd minute — shortly after coming off as a substitute — while Paul Wanner was also booked during a feisty second period. Already crowned Eredivisie champions for a third consecutive season, PSV showed again why they remain the dominant force in Dutch football. For Sparta Rotterdam, sitting eighth and still chasing a European berth, this home defeat makes their top-half ambitions considerably harder to achieve.

St. Pauli vs Bayern Munich
RecapBundesliga

St. Pauli vs Bayern Munich (0 - 5)

Bayern Munich delivered a clinical masterclass at the Millerntor, routing St. Pauli 5-0 to shatter the Bundesliga's single-season scoring record. Rotating heavily after their Champions League first-leg win over Real Madrid, the visitors reached 105 league goals for the campaign — eclipsing a benchmark that had stood since 1971/72. Jamal Musiala put Bayern ahead early in the first half, and the floodgates opened after the break. Leon Goretzka made it two in the 52nd minute before Michael Olise added a third moments later. Nicolas Jackson extended the lead on 65 minutes, and Raphaël Guerreiro rounded off the afternoon in the 89th. No red cards or penalties featured — this was a controlled, professional dismantling from start to finish. The result tightens Bayern's grip on the Bundesliga title; they can seal a 35th championship on April 19 if Borussia Dortmund slip up. For St. Pauli, still winless against Bayern in the top flight, the relegation fight grows more desperate by the week.

Auxerre vs Nantes
RecapLigue 1

Auxerre vs Nantes (0 - 0)

A goalless draw in what was billed as the 'match of fear' left both sides frustrated at Stade Abbé-Deschamps on Matchday 29. Auxerre were the more threatening side, with Lassine Sinayoko heading over the bar in the 19th minute before having a follow-up effort blocked by Nicolas Cozza moments later. With no goals to report, the drama came from elsewhere. Dehmaine Tabibou wasted a clear opening for Nantes before half-time, and Cozza inexplicably fired wide from an unmarked position at the far post after an Abline free kick on 61 minutes. The 84th minute brought a brief interruption when Auxerre's ultras lit flares to mark their 35th anniversary, followed by a collision between goalkeeper Anthony Lopes and Bryan Okoh. Auxerre hold onto 16th place with a five-point cushion over the relegation zone, while Nantes remain stuck in 17th and edge dangerously closer to Ligue 2. Audible boos from the home end at full-time said it all — a point felt far more like two dropped than one gained.

Liverpool vs Fulham
RecapPremier League

Liverpool vs Fulham (2 - 0)

Liverpool ended a three-match losing run with a 2-0 win over Fulham at Anfield, with 17-year-old Rio Ngumoha becoming the youngest player ever to net a Premier League goal at the ground. The hosts struck twice in four first-half minutes. Ngumoha (36') curled a right-footed finish past the keeper after Florian Wirtz's driving run split the Fulham defence. Mohamed Salah (40') doubled the lead from a move involving Ngumoha and Cody Gakpo — his second Premier League goal since November. A Sasa Lukic effort was ruled out for offside after the break, but Fulham rarely threatened seriously. The win eases pressure on manager Arne Slot, lifting Liverpool to fifth and extending their gap over Chelsea in the Champions League qualification race to four points with seven games left. Fulham remain three points off the European places, still in contention but unable to take anything on the road.

Standard Liège vs Westerlo
RecapFirst Division A

Standard Liège vs Westerlo (1 - 2)

Westerlo delivered a gut-punch to Standard de Liège's European ambitions with a hard-fought 2-1 victory at Sclessin on Saturday. The win was sealed by Dylan Ourega's towering header in the 86th minute, condemning the Rouches to a painful defeat in the Europe Playoffs. Nacho Ferri set the tone early, tucking away an Adnane Abid assist in the 10th minute to put Westerlo ahead. The contest swung decisively when Josué Homawoo was sent off in the 65th for a last-man foul on Ferri. Despite the disadvantage, substitute Timothée Nkada levelled in the 76th, finishing a slick combination involving Ayensa and Abid. But Ourega rose to head home from a corner ten minutes later to break Standard hearts. Rafiki Saïd had earlier squandered a golden one-on-one chance that could have changed the story entirely. The defeat leaves Standard three points adrift of Westerlo in the Europe Playoffs standings — a serious blow to their continental hopes. Westerlo, meanwhile, are firmly in the driving seat for a European berth next season.

Utrecht vs Telstar
RecapEredivisie

Utrecht vs Telstar (4 - 1)

FC Utrecht swept aside Telstar 4-1 at the Galgenwaard, staying in touch with the European playoff places. The moment of the match belonged to Gjivai Zechiël, whose audacious long-range curler on 61 minutes drew instant acclaim — a goal he later admitted came on instinct after seeing opponents falling so well lately. Matisse Didden put Utrecht ahead on 10 minutes with an assist from Dani de Wit, before Danny Bakker leveled for Telstar on 58 minutes. The visitors' joy was short-lived: Zechiël's curler restored the lead three minutes later. De Wit then profited from chaos in the box on 72 minutes — goalkeeper Koeman was struck by a Stepanov header and de Wit tucked away the rebound. Substitute Jesper Karlsson sealed it with a long-range free kick deep in stoppage time. Despite controlling 59% of possession, Telstar were punished by Utrecht's clinical finishing. The win lifts Utrecht to eighth with 44 points from 30 games, keeping European playoffs firmly in sight. Telstar remain mired in the relegation battle — and face the added blow of their coach reportedly attracting interest from the very side that just beat them.

Wolfsburg vs Eintracht Frankfurt
RecapBundesliga

Wolfsburg vs Eintracht Frankfurt (1 - 2)

Eintracht Frankfurt traveled to the Volkswagen Arena and secured a composed 2-1 Bundesliga victory over relegation-threatened Wolfsburg on matchday 29, with a clinical first-half double doing all the damage. Oscar Højlund opened the scoring in the 21st minute, latching onto a pass from Ayoube Amaimouni Echghouyab, before Arnaud Kalimuendo extended the lead in the 32nd to put the visitors firmly in control. Wolfsburg's afternoon grew harder still as Jeanuël Belocian and Vinícius Souza were both booked — in the 30th and 59th minutes — while Frankfurt's Aurèle Amenda saw yellow in the 67th. Dženan Pejčinović, teed up by Adam Daghim, pulled one back in the 90th+7' but there was never enough time for a real comeback. For Eintracht Frankfurt, it was their first away win since November — a timely three points in their push for a European berth. Wolfsburg, meanwhile, remain mired in relegation trouble with the season running out.

RB Leipzig vs Borussia M'gladbach
RecapBundesliga

RB Leipzig vs Borussia M'gladbach (1 - 0)

RB Leipzig secured a hard-fought 1-0 win over Borussia Mönchengladbach at Red Bull Arena on Matchday 29, with a late goal the difference in a tense, closely contested affair watched by around 40,000 fans. Leipzig dominated possession and carved out chances throughout, but were kept at bay for long stretches by an outstanding Moritz Nicolas in goal, who finished the game with a remarkable 11 saves. The deadlock was finally broken in the 81st minute when Yan Diomande converted a perfectly weighted through ball from Christoph Baumgartner. Gladbach came agonisingly close to a leveller when Fabio Chiarodia rattled the crossbar in the closing stages. The three points push Leipzig to 56 and keep their Champions League bid very much alive in third place. For Gladbach, sitting 13th on 30 points, the fight for Bundesliga safety rolls on with little margin for error.

Heidenheim vs Union Berlin
RecapBundesliga

Heidenheim vs Union Berlin (3 - 1)

In what felt like a lifeline, Heidenheim snapped a miserable 15-game winless run with a 3-1 win over Union Berlin at the Voith-Arena. The star of the show was Mathias Honsak, a man who had gone 23 league games without a goal before this afternoon. Honsak struck in the 9th and 36th minutes to put Heidenheim firmly in control. Leopold Querfeld gave Union hope with a 75th-minute goal, but Budu Zivzivadze extinguished it four minutes later to seal the result. A late second Zivzivadze effort was ruled out by VAR. Despite holding 54.5% possession, Union managed just three shots on target. Heidenheim narrow the gap to the relegation playoff spot to six points, keeping survival hopes alive with five games left. Union Berlin, on 32 points with a comfortable cushion above the drop zone, will put this down as a frustrating blip — though they've now lost five of their six Bundesliga meetings with these opponents.

Borussia Dortmund vs Bayer Leverkusen
RecapBundesliga

Borussia Dortmund vs Bayer Leverkusen (0 - 1)

Bayer Leverkusen pulled off a significant upset at Signal Iduna Park, becoming only the second team after Bayern Munich to beat Borussia Dortmund in the Bundesliga this season. Robert Andrich's clinical long-range finish proved the difference in a tightly fought afternoon in Dortmund. Andrich broke the deadlock in the 42nd minute with a thunderous 23-meter effort that flew into the bottom-left corner at 120 km/h, leaving goalkeeper Gregor Kobel with absolutely no chance. Dortmund dominated possession at 53% but mustered just one shot on target all match. Serhou Guirassy—who was booked just before the interval—summed up the hosts' evening by rattling the crossbar in the 83rd minute with Leverkusen's lead still intact. The result lifts Leverkusen to fifth in the Bundesliga table and keeps their Champions League qualification bid very much alive. For Dortmund, it is only their third league loss of the season, but the timing hands Bayern Munich the opportunity to stretch their lead at the top to nine points.

Burnley vs Brighton & Hove Albion
RecapPremier League

Burnley vs Brighton & Hove Albion (0 - 2)

Brighton made the trip to Turf Moor count with a polished 2-0 victory, as Mats Wieffer delivered a match-winning brace to deepen Burnley's relegation misery. Wieffer broke the deadlock in the 43rd minute, finishing calmly from the centre of the box after a sharp four-pass move ended with an assist from Pascal Gross. Earlier, Jaidon Sancho had a goal ruled out for offside, and Danny Welbeck's close-range effort was well saved by Martin Dúbravka. The second half was controlled but tense — Maxime Estève and Florentino both picked up yellow cards for the hosts — before Kaoru Mitoma won possession near the box and teed up Wieffer to finish coolly with his right foot in the 89th minute. Brighton climb to 46 points, just one behind the European qualification places, keeping their continental hopes very much alive. For Burnley, now 12 points adrift of safety with only six games left, the task looks insurmountable.

Brentford vs Everton
RecapPremier League

Brentford vs Everton (2 - 2)

Brentford and Everton shared an entertaining 2-2 draw at the Gtech Community Stadium, with Igor Thiago's brace ultimately not enough to secure all three points for the hosts. Thiago opened the scoring from the penalty spot in the 6th minute after Jordan Pickford brought down Kevin Schade — a call confirmed by VAR. Beto levelled with a composed header late in the first half to make it 1-1. Thiago then struck again in the 84th minute to restore Brentford's lead, but Beto completed his brace with a late equaliser to deny the Bees the win. No red cards were shown in an otherwise competitive contest. Both clubs will rue dropped points. Brentford, sitting seventh, remain three points off the European qualification places. Everton, level on goal difference just behind the Bees, will take some heart from the late comeback — but with the season closing out, they need wins rather than draws.

Cercle Brugge vs La Louvière
RecapFirst Division A

Cercle Brugge vs La Louvière (3 - 0)

Cercle Brugge made short work of RAAL La Louvière at Jan Breydel on Saturday, running out commanding 3-0 winners in the Belgian Pro League relegation playoffs. Steve Ngoura set the tone with a goal inside two minutes, and the visitors never found a way back into it. Ngoura grabbed his brace just before the break (45+2'), after a Magnée cutback and a Vanzeir deflection created chaos in RAAL's box early on. Oluwaseun Adewumi, set up by Nazinho, added a third late on (89') to seal the points. Vanzeir also rattled the crossbar before the interval, while RAAL's Faye was booked in the 75th minute for a rough challenge on Adewumi. The result marks Cercle's first home win since September, a timely boost as they edge closer to safety. For RAAL La Louvière, the damage is real — Dender can cut the gap to six points with a win of their own, keeping the relegation battle very much alive.

Arsenal vs AFC Bournemouth
RecapPremier League

Arsenal vs AFC Bournemouth (1 - 2)

Arsenal suffered a damaging home loss, going down 1-2 to Bournemouth at the Emirates. The decisive blow came from Alex Scott in the 74th minute, capping a superb away display that left the Gunners' title hopes in real doubt. Junior Kroupi gave Bournemouth an early advantage, finishing from inside the box in the 16th minute. Viktor Gyökeres drew Arsenal level from the spot in the 34th minute after Ryan Christie was penalised for handball in the area. The Gunners thought they'd flipped the script when Gyökeres struck again just before the hour, only for the effort to be ruled out for offside. Scott then put it beyond doubt, controlling inside the area and drilling home with his right foot. The defeat is a significant setback for Arsenal's title ambitions, dropping three crucial points at home. For Bournemouth, it's a genuine statement scalp — away wins at top-six grounds are never easy, and this result underlines their quality as a serious Premier League force.

Den Haag U19 vs Nijmegen U19
PreviewUEFA Champions LeaguePrediction: 1-2

Den Haag U19 vs Nijmegen U19

ADO Den Haag U19 host NEC Nijmegen U19 in a pivotal Eredivisie U19 spring fixture. Den Haag sit sixth in the table and are desperate for points, while the visitors arrive in second place and very much in the title race. A home win would shake up the standings considerably. NEC have been the more consistent side this spring, though they were beaten 2-5 by Feyenoord U19 in their last outing on March 21. Forward Paulo Da Silva has been their standout performer all campaign. ADO Den Haag are not toothless — Hakan Argün and D. van Loenen both have six goals apiece — and the hosts did beat AZ U19 3-0 two weeks before losing 4-2 to Ajax. The reverse fixture back in January told the full story: NEC ran out 5-2 winners. Den Haag's defence has leaked over two goals per game this spring, and they face visitors who are clinical up front. Expect NEC Nijmegen to claim all three points. Our prediction: 1-2

Kick-off: 10:30
Feyenoord U19 vs AZ U19
PreviewUEFA Champions LeaguePrediction: 2-1

Feyenoord U19 vs AZ U19

Feyenoord U19 host AZ Alkmaar in a Dutch U19 Divisie 1 spring-round clash with real weight at the top of the table. Unbeaten across 14 wins and four draws this spring, Feyenoord are in commanding form and a win here would all but cement their title credentials. Feyenoord have been prolific, averaging over 2.6 goals per game and conceding fewer than 1.2, and they already beat AZ 1-0 in the September first meeting. AZ arrive sitting sixth after a disrupted domestic spring, though their UEFA Youth League campaign showed real quality — beating Borussia Dortmund 4-0 in the round of 32 and edging Aston Villa on aggregate before a heavy 6-2 exit against Benfica in February ended their European ambitions. Home advantage, a flawless spring record, and a positive head-to-head all firmly favour Feyenoord. AZ carry a scoring threat but face the toughest test in their division. Our prediction: 2-1

Kick-off: 10:15
Sparta Rotterdam U19 vs PSV U19
PreviewUEFA Champions LeaguePrediction: 1-2

Sparta Rotterdam U19 vs PSV U19

A mid-table Eredivisie U19 battle awaits as Sparta Rotterdam host rivals PSV in a fixture that could shake up the spring-season standings. PSV sit 5th with nine points from seven games, while Sparta are 7th with seven — three points separate the two Dutch youth academies with plenty still to play for. PSV arrive on the back of three straight wins, including a 3-1 victory over Ajax, with midfielder G. Verhulst — six goals to his name this season — leading the charge alongside forwards B. Khaderi and M. Bahaty. Sparta's form has been stop-start, but they delivered a sharp reminder of their quality when hammering PSV 3-1 in the reverse fixture in early March. PSV's superior recent run and Verhulst's goal threat make them slight favourites, but Sparta's home advantage and the memory of that March dismantling add genuine intrigue. Our prediction: 1-2

Kick-off: 10:00
Marseille vs Metz
RecapLigue 1

Marseille vs Metz (3 - 1)

Marseille returned to winning ways at the Vélodrome on Friday, dispatching Metz 3-1 in a controlled Ligue 1 display. Pierre-Emerick Aubameyang got the hosts off to a perfect start, arrowing a superb finish into the top corner after 13 minutes following a misplaced Metz pass. The second half sparked to life immediately. Igor Paixão extended the lead with an elegant chip just after the break (48'), before Giorgi Tsitaishvili gave Metz hope with a swift reply (49'). Goalkeeper Pape Sy had been busy all evening with several fine saves, and a Metz effort struck the woodwork in the first half. An Aubameyang strike was also ruled out for offside in the 32nd minute. Hamari Traoré wrapped things up deep in added time (90+3') to seal the result. The win sends Marseille provisionally into third place, reigniting their top-three push. For Metz, still fighting to survive the drop, this defeat is another painful blow in a desperately difficult season.

Augsburg vs Hoffenheim
RecapBundesliga

Augsburg vs Hoffenheim (2 - 2)

All four goals at the WWK Arena on Matchday 29 arrived in the opening 45 minutes, making for a wild first half before things settled into a tense stalemate. The match's standout moment came late: Alexis Claude-Maurice blazed a penalty over the bar in the 85th minute, denying Augsburg a winner they had worked hard to earn. Augsburg were razor-sharp early, with Claude-Maurice striking in the 11th minute and Michael Gregoritsch doubling the lead just three minutes later. Hoffenheim pulled level before the break — Robin Hranáč headed home from a corner (35'), then Bazoumana Touré finished coolly off the post after a slick heel pass from Fisnik Asllani (42'). A season-high ten yellow cards underlined how combustible the afternoon was. The draw does little good for either side. Augsburg are now winless in five straight Bundesliga outings, while Hoffenheim have failed to win in four. Neither club can afford many more afternoons like this as the season reaches its run-in.

West Ham United vs Wolverhampton Wanderers
RecapPremier League

West Ham United vs Wolverhampton Wanderers (4 - 0)

West Ham swept aside Wolves 4-0 at London Stadium on Friday, with a devastating two-minute burst from Valentín Castellanos in the second half sealing a vital Premier League win. Konstantinos Mavropanos opened the scoring with a header on 42 minutes, converting a Jarrod Bowen cross. Castellanos then struck twice in the 66th and 68th minutes — the first a scruffy low effort that crept past goalkeeper José Sá — before Mavropanos wrapped things up with a composed far-post volley from a set piece in the 83rd. No penalties or red cards, though Castellanos did collect a booking midway through the half. The win lifted West Ham out of the relegation zone into 17th place, simultaneously tipping Tottenham into the bottom three — their first relegation-zone appearance since January 2009. For Wolves, still winless in their last 18 away league games, mathematical elimination is drawing ominously close.

Sporting Charleroi vs Antwerp
RecapFirst Division A

Sporting Charleroi vs Antwerp (2 - 1)

Sporting Charleroi ended a 69-day winless run on Friday night, beating Royal Antwerp 2-1 at home in the Conference League play-offs. It was a controlled showing from the hosts, with Antoine Bernier's opener setting the tone. Bernier fired past goalkeeper Nozawa in the 30th minute to hand Charleroi the lead. Patrick Pflücke made it 2-0 in the 63rd, with Bernier turning provider for the second goal. Antwerp's only lifeline arrived deep in added time — VAR spotted a handball by Charleroi's Keita in the box, and Vincent Janssen converted the resulting penalty in the 90+4' to make it 2-1. But there was no time left to find an equalizer. The result is a timely confidence boost for interim boss Mario Kohnen and lifts Charleroi up the Conference League play-off table. For Antwerp, it's a second consecutive play-off defeat and another damaging blow to their European ambitions.

Paris FC vs Monaco
RecapLigue 1

Paris FC vs Monaco (4 - 1)

A blistering first-half display at Stade Jean Bouin saw Paris FC dismantle Monaco 4-1 on Ligue 1 matchday 29, with Jonathan Ikoné stealing the show with a stunning brace inside 21 minutes. Paris FC were electric from the off — Ikoné struck in the 4th minute, Ciro Immobile doubled the lead in the 8th, and Ikoné added his second in the 21st to make it 3-0 at the break. Folarin Balogun pulled one back for Monaco in the 36th, but Luca Koleosho sealed it with a 71st-minute strike. Paul Pogba made a notable cameo as a 69th-minute substitute for the visitors, but couldn't spark a comeback. The result gives a significant lift to Paris FC, who complete a season double over Monaco. For the visitors, it's a stinging end to a superb run of form — Pogba's brief appearance was encouraging, but the damage was long done by then.

Crystal Palace vs Fiorentina
RecapUEFA Europa Conference League

Crystal Palace vs Fiorentina (3 - 0)

Crystal Palace put in a commanding display at Selhurst Park, beating Fiorentina 3-0 in the UEFA Conference League quarter-final first leg. The night's standout storyline was the return of Jean-Philippe Mateta, making his first start since late January — he converted a penalty just 24 minutes in on an emotional comeback. Dodô gifted the opener with a clumsy foul in the box, earning a yellow card. Seven minutes later, Tyrick Mitchell tapped home a rebound after Daichi Kamada's throughball and Daniel Munoz's cutback caused havoc in the area. Ismaïla Sarr — now on five Conference League goals this season — nodded in a third in injury time. Fiorentina's only real threat was a second-half strike off the crossbar. Fiorentina, sitting just five points above the Serie A relegation zone, face a near-impossible task in the second leg in Florence. For Crystal Palace, unbeaten in their last seven Conference League outings, a first European semi-final is firmly within reach.

Freiburg vs Celta Vigo
RecapUEFA Europa League

Freiburg vs Celta Vigo (3 - 0)

SC Freiburg hammered Celta Vigo 3-0 in the first leg of their UEFA Europa League quarter-final at Europa-Park Stadion, putting one foot firmly in the semi-finals. An early goal from Vincenzo Grifo set the tone for a dominant night. Grifo opened the scoring in the 10th minute, drilling in from outside the box off a Johan Manzambi assist. Jan Niklas Beste made it 2-0 before the break, converting from six yards after a clever Igor Matanovic pass. Manzambi himself rattled the woodwork at 34 minutes, underlining Freiburg's relentless pressure. Matthias Ginter put the tie to bed in the 78th minute, powering a header home from a Beste delivery to complete the rout. Freiburg's three-goal cushion makes the return leg a formality barring a dramatic collapse. For Celta Vigo, the deficit is daunting — they'll need something extraordinary at home to keep their European dream alive.

Porto vs Nottingham Forest
RecapUEFA Europa League

Porto vs Nottingham Forest (1 - 1)

A frantic start at Estádio do Dragão produced a 1-1 draw as Nottingham Forest left Porto with a precious away point in the UEFA Europa League quarter-final first leg, keeping the tie wide open. FC Porto took the lead in the 11th minute when Willian Gomes finished smartly after a low cross from Gabri Veiga. Two minutes later, the hosts gifted an equalizer — a back pass from Martim Fernandes left goalkeeper Diogo Costa stranded outside his area, the ball trickling in for a costly own goal. Forest thought they had snatched the lead in the 66th minute when substitute Igor Jesus finished, but VAR ruled the effort out. The draw arguably suits the visitors. Having already beaten Porto 2-0 during the league phase, Nottingham Forest head into the second leg at home knowing a draw would be enough to reach the semi-finals. Porto pushed hard but could not find a way through a composed Forest backline, leaving them needing a result in England.

Bologna vs Aston Villa
RecapUEFA Europa League

Bologna vs Aston Villa (1 - 3)

Aston Villa delivered a composed away display at Stadio Renato Dall'Ara, beating Bologna 3-1 in the UEFA Europa League quarter-final first leg. The defining moment came just before the break, when goalkeeper Ravaglia gifted Ezri Konsa a free header from a corner, the big defender nodding in to put the visitors ahead in the 44th minute. Ollie Watkins doubled the advantage six minutes into the second half, pouncing on a sloppy Bologna build-up and sliding past Ravaglia. The hosts had their moments — Santiago Castro saw a goal chalked off for offside in the 26th minute, Lewis Ferguson struck the crossbar, and Bernardeschi hit the post late on. Jonathan Rowe finally beat the Villa keeper in the 90th minute with a fierce right-footed curler, only for Watkins to immediately restore the two-goal lead, finishing unmarked from a corner in the 93rd. Aston Villa travel back to Birmingham with a healthy advantage and Lucumi's yellow card means Bologna will also be without the defender for the second leg, making their comeback mission even steeper.