Bayer Leverkusen raced into a two-goal lead over Roma in the opening 20 minutes, but eventually needed two more goals in the final 10 minutes to rescue a 4-4 draw in an entertaining Champions League Group E match.

The Mexican forward Javier Hernández struck twice for the hosts, including a fourth-minute penalty, as Leverkusen looked to be cruising to victory and the Italians suffering a horror start.

But Daniele De Rossi, who had also scored on Saturday to mark his 500th appearance for the club in their 3-1 win over Empoli, twice caught the defence napping to level.

Miralem Pjanic curled in a free kick in the 54th minute to put the visitors ahead and the substitute Iago Falqué stretched their lead before goals from Kevin Kampl in the 84th and Admir Mehmedi in the 86th drew the hosts level.

Leverkusen remain second on four points with Roma bottom on two. Barcelona top the group on seven after beating BATE Borisov.

Leverkusen shot out of the blocks and struck after just four minutes when Vassilis Torosidis was punished for a handball, and Hernández sent the Roma keeper, Wojciech Szczesny, the wrong way.

The Italians, with their backs to the wall after gathering only one point from their opening two group matches, initially struggled with the Leverkusen’s high-pressing tactics, but Pjanic tested Bernd Leno with a 16th-minute effort. The hosts scored again, however, three minutes later, with Hernández set up by a pinpoint Hakan Calhanoglu pass.

Roma’s defence looked as shaky as in the 3-2 loss to BATE Borisov in their previous game, when they conceded three goals in the opening half-hour, but De Rossi cut the deficit in the 29th, tipping the game instantly in Roma’s favour.

The 32-year-old scored his first after a bad clearance from Leno and then slipped into the box to connect with a Pjanic free kick to equalise in the 38th, with Leverkusen having inexplicably surrendered control of the game to the Italians.

Roma picked up where they left off after half time and a scintillating run by Gervinho required another good save from Leno, but the keeper was helpless when Pjanic curled his free kick over the wall.

Torosidis should have added another in the 70th minute but Falqué made amends in the 73rd, tapping in from a Gervinho pass, before the late comeback from Leverkusen rescued a point.