Liverpool closed back to within two points of Premier League leaders Manchester City by coming from behind to beat Burnley 3-1 as Manchester United and Arsenal shared the spoils in a thrilling 2-2 draw at Old Trafford.
A huge error by £67 million ($75 million) Liverpool goalkeeper Alisson Becker led to Burnley's shock opener when Jack Cork bundled home after the Brazilian fumbled in the wet conditions.
However, the visitors quickly rallied to stretch their unbeaten start to the league season to 15 games.
James Milner levelled just after the hour mark and then turned provider for Firmino to turn the game around just three minutes after coming on as a substitute before Xherdan Shaqiri sealed the three points late on.
Arsenal stretched their unbeaten run to 20 games, but failed to take advantage of two gifts from the hosts as United's winless run in the Premier League extended to four matches.
Amid an underperforming side this season, goalkeeper David de Gea has remained in almost impeccable form, but the Spaniard spilled Shkodran Mustafi's header over the line to hand Arsenal the lead 26 minutes in.
Four minutes later the hosts levelled when Anthony Martial turned home Ander Herrera's cross after Bernd Leno saved Marcos Rojo's cross.
Both second-half goals came in a crazy minute as firstly Rojo turned the ball off Alexandre Lacazette and into the United's net in his attempts to make a last-ditch tackle.