Exequiel Palacios’ last-gasp penalty rescued a point at Bayern Munich to keep Bayer Leverkusen top of the Bundesliga.

Leon Goretzka looked to have fired Munich to victory with just four minutes left before Palacios snatched a 2-2 draw in injury time.

Harry Kane opened the scoring to make it four goals in four league games but he was unable to inspire Bayern to victory.

Alejandro Grimaldo’s brilliant free-kick levelled in the first half and Lukas Hradecky denied Kane, Leroy Sane, Thomas Muller and Serge Gnabry.

Xabi Alonso’s Leverkusen remain ahead of Bayern on goal difference after the opening four games of the season.

The teams were the only sides to win all of their first three matches this term and Bayern went to make it four early on.

The hosts took the lead after just seven minutes when Sane’s corner was flicked on for Kane at the far post to nod in unmarked from close range.

Sane shot over soon after, with the hosts on top, but they were stunned after 25 minutes when Grimaldo bent in a free-kick from 20 yards.

It gave Leverkusen confidence and Victor Boniface had a goal disallowed for offside after 33 minutes.

Muller and Gnabry forced Hradecky into smart stops before he denied Sane with a fine fingertip save and then thwarted Goretzka from point-blank range just before the break.

Boniface – who has five goals in five games this season – lobbed onto the roof of the net as he tried his luck from the halfway line as the frantic pace continued into the second half.

Hradecky continued to frustrate the hosts when he superbly kept Kane out after 57 minutes.

But Leverkusen were breached with four minutes left when substitute Mathys Tel, who enjoyed an impressive cameo, crossed for Goretzka to sweep in a first-time finish.

Boniface, though, should have made it 2-2 just a minute later when he blazed over with the goal gaping but they were given a reprieve in stoppage time.

Alphonso Davies fouled Jonas Hofmann in the box and, after a VAR check, Palacios found the top corner from the spot.

There was still time for more drama when Dayot Upamecano thought he had won it for Bayern in the ninth minute of stoppage time, only to be ruled offside after lashing in from a corner.