Alexandre Lacazette's fifth Premier League goal of the season grabbed a 1-1 draw for Arsenal in their pulsating Emirates Stadium encounter with Liverpool.

Liverpool spent significant periods on the back foot against their vibrant hosts, although Sadio Mane had a goal controversially ruled out for offside and Virgil van Dijk hit the post before captain James Milner clinically pounced on a Bernd Leno error after the hour.

Jurgen Klopp's side go back to the top of the table for now but will be two points behind Manchester City if the champions beat lowly Southampton on Sunday, while Chelsea can also go above them with three points against Crystal Palace.

Joe Gomez's last-ditch challenge deflected Pierre-Emerick Aubameyang's 14th-minute shot behind, while Sadio Mane was flagged offside at the other end when he tapped in after Roberto Firmino hit the post.

A combination of Bernd Leno and Shkodran Mustafi prevented Van Dijk from giving Liverpool a 23rd-minute lead when the centre-back stayed forward after a set-piece.

The frantic end-to-end feel continued, with Aubameyang dragging off target from Henrikh Mkhitaryan's backheel, before Mesut Ozil produced an impudent flick of his own from Granit Xhaka's chipped 39th-minute pass for Alexandre Lacazette to fire wide.

Replicating Alisson's earlier dart from his goal to disrupt a Mkhitaryan aerial attempt, Leno charged haphazardly into Van Dijk in first-half stoppage time and was relieved to see the defender's header bounce to safety off the upright.

Mkhitaryan passed up a couple of shooting opportunities as Arsenal resumed on top but Milner broke the deadlock, smashing home when Leno's fumble from Mane's cross deflected into his path off Rob Holding.

Leno partly atoned for that error by pushing over Van Dijk's 74th-minute header, by which stage Arsenal's earlier poise and threat looked to have dissipated. Lacazette had other ideas eight minutes from time.