Calendar An icon of a desk calendar. Cancel An icon of a circle with a diagonal line across. Caret An icon of a block arrow pointing to the right. Email An icon of a paper envelope. Facebook An icon of the Facebook "f" mark. Google An icon of the Google "G" mark. Linked In An icon of the Linked In "in" mark. Logout An icon representing logout. Profile An icon that resembles human head and shoulders. Telephone An icon of a traditional telephone receiver. Tick An icon of a tick mark. Is Public An icon of a human eye and eyelashes. Is Not Public An icon of a human eye and eyelashes with a diagonal line through it. Pause Icon A two-lined pause icon for stopping interactions. Quote Mark A opening quote mark. Quote Mark A closing quote mark. Arrow An icon of an arrow. Folder An icon of a paper folder. Breaking An icon of an exclamation mark on a circular background. Camera An icon of a digital camera. Caret An icon of a caret arrow. Clock An icon of a clock face. Close An icon of the an X shape. Close Icon An icon used to represent where to interact to collapse or dismiss a component Comment An icon of a speech bubble. Comments An icon of a speech bubble, denoting user comments. Comments An icon of a speech bubble, denoting user comments. Ellipsis An icon of 3 horizontal dots. Envelope An icon of a paper envelope. Facebook An icon of a facebook f logo. Camera An icon of a digital camera. Home An icon of a house. Instagram An icon of the Instagram logo. LinkedIn An icon of the LinkedIn logo. Magnifying Glass An icon of a magnifying glass. Search Icon A magnifying glass icon that is used to represent the function of searching. Menu An icon of 3 horizontal lines. Hamburger Menu Icon An icon used to represent a collapsed menu. Next An icon of an arrow pointing to the right. Notice An explanation mark centred inside a circle. Previous An icon of an arrow pointing to the left. Rating An icon of a star. Tag An icon of a tag. Twitter An icon of the Twitter logo. Video Camera An icon of a video camera shape. Speech Bubble Icon A icon displaying a speech bubble WhatsApp An icon of the WhatsApp logo. Information An icon of an information logo. Plus A mathematical 'plus' symbol. Duration An icon indicating Time. Success Tick An icon of a green tick. Success Tick Timeout An icon of a greyed out success tick. Loading Spinner An icon of a loading spinner. Facebook Messenger An icon of the facebook messenger app logo. Facebook An icon of a facebook f logo. Facebook Messenger An icon of the Twitter app logo. LinkedIn An icon of the LinkedIn logo. WhatsApp Messenger An icon of the Whatsapp messenger app logo. Email An icon of an mail envelope. Copy link A decentered black square over a white square.

Bayer Leverkusen move to brink of title as Bayern Munich slip up again

Florian Wirtz, right, fired Bayer Leverkusen to victory over Union Berlin (Ebrahim Noroozi/AP)
Florian Wirtz, right, fired Bayer Leverkusen to victory over Union Berlin (Ebrahim Noroozi/AP)

Florian Wirtz’s penalty took Bayer Leverkusen to within touching distance of the Bundesliga title as Bayern Munich squandered a two-goal lead to leave the leaders 16 points clear.

Wirtz struck from the spot eight minutes into added time at the end of the first half after Christopher Trimmel had handled to secure a 1-0 win at Union Berlin, who had seen Robin Gosens dismissed for a second bookable offence minutes earlier.

Xabi Alonso’s men could win the league next weekend, when they face Werder Bremen on Sunday, a day after Bayern host Cologne with both sides have just 18 points to play for.

The reigning champions, who set out this season looking for a 12th successive title, conceded further ground as they went down 3-2 at Heidenheim.

Harry Kane’s 32nd league goal of the season and Serge Gnabry’s strike had given the visitors a healthy half-time lead, but goals from Kevin Sessa and Tim Kleindienst inside a minute dragged the promoted side back into it before Kleindienst snatched a famous victory 11 minutes from time.

Serhou Guirassy’s 64th-minute strike sent third-placed Stuttgart level with Thomas Tuchel’s side on points courtesy of a 1-0 win at Borussia Dortmund, who dropped out of the top four as a result.

Lois Openda claimed a double to help RB Leipzig maintain the pace in the race for a Champions League spot with a 4-1 victory at Freiburg.

Openda’s contribution came in between Amadou Haidara’s first-minute opener and Benjamin Sesko’s strike nine minutes after the restart with substitute Vincenzo Grifo reducing the deficit.

Lee Jae-sung scored twice to help Mainz to a 4-0 home win over bottom-of-the-table Darmstadt with Andreas Hanche-Olsen and Brajan Gruda also on the scoresheet, while substitutes Steffen Tigges and Luca Waldschmidt struck at the death as Cologne recovered from Felix Passlack’s opener to beat Bochum 2-1.

AC Milan maintained their seemingly vain pursuit of Serie A leaders Inter Milan with a regulation 3-0 win over 10-man Lecce.

Christian Pulisic and Olivier Giroud gave the Rossoneri control inside the first 20 minutes at the San Siro before the visitors had Nikola Krstovic dismissed, and Rafael Leao wrapped up a fifth successive league victory 12 minutes after the break.

Roma’s Gianluca Mancini (right) celebrates his derby goal against Lazio
Roma’s Gianluca Mancini (right) celebrates his derby goal against Lazio (Gregorio Borgia/AP/PA)

Gianluca Mancini handed Roma boss Daniele De Rossi victory in his first Derby della Capitale as he headed home Paulo Dybala’s corner to clinch a 1-0 victory over Lazio.

M’Baye Niang came off the bench to end Empoli’s losing streak with a 3-2 victory over Torino.

Niang scored in the fourth minute of added time after Duvan Zapata had twice equalised to cancel out goals from Nicolo Cambiaghi and Matteo Cancellieri.

Goncalo Ramos scored Paris St Germain’s 100th goal of the season as they hit back late to deny bottom-of-the-table Clermont a second successive Ligue 1 victory at the Parc des Princes.

Habib Keita stunned the home crowd when he opened the scoring for the visitors 13 minutes before the break, and the locals were even less amused in first-half stoppage-time when 17-year-old Senny Mayulu’s long-range equaliser was ruled out after a VAR review.

Achraf Hakimi and Ramos both hit the bar as the hosts laid siege to the Clermont goal, but it was Ramos who levelled five minutes from time with Kylian Mbappe, making his 300th appearance for the club as a 67th-minute substitute, sliding him in to snatch a 1-1 draw.

Emmanuel Sabbi’s late penalty ensured Le Havre emerged from their trip to Lens with a 1-1 draw as he cancelled out Przemyslaw Frankowski’s opener to further dent the home side’s hopes of a top-four finish.

In Spain, substitute Alex Berenguer ended Athletic Bilbao’s 40-year wait for Copa del Rey glory with the decisive penalty in a shoot-out victory over Real Mallorca.

Raul Garcia, Iker Muniain, Vesga and Berenguer, who were all introduced from the bench, scored from the spot as keeper Julen Agirrezabala saved from Manu Morianes and Nemanja Radonjic blazed over to hand the Basque club the trophy they last win as part of a league and cup double in 1984.

Oihan Sancet’s 50th-minute strike had earlier cancelled out Dani Rodriguez’s first-half opener at the Estadio Olimpico de la Cartuja in Seville, but neither team could find a winner in 120 minutes of football.