Liverpool had enough chances in the game to extend their lead, but Sadio Mane, Diogo Jota and Salah were all guilty of squandering them. Newcastle thought they scored an injury-time equaliser, but Callum Wilson's effort was chalked off for a handball in the build-up.
However, Willock scored a superb goal in the final minute to ensure Liverpool were made to pay for their profligacy as the Magpies walked away from Anfield with a point.
Despite the draw, Liverpool remain a point behind fourth-placed Chelsea, who play West Ham later today, as the Premier League holders conceded a late equaliser for the second time in a week.
On that note, let's have a look at the Liverpool player ratings:
Alisson - 6/10
Alisson was having a straightforward evening, making a key save to deny Joelinton in the second half. But a clean sheet was not to be on the night.
Trent Alexander-Arnold - 6/10
Trent Alexander-Arnold was menacing for Liverpool while going forward, causing Newcastle plenty of trouble with his marauding runs. But the Englishman once again looked suspect in defence.
Fabinho - 6/10
Fabinho's ability on the ball came to the fore once again, but he struggled against Newcastle's high press.
Ozan Kabak - 6.5/10
Liverpool's winter arrival, Ozan Kabak was sound in defence. Even though Saint-Maxim beat him a few times, Kabak recovered well and managed to marshall the Liverpool backline with elan.
Andrew Robertson - 6/10
The Scotsman was a constant outlet for Liverpool and got into good positions to lay crosses. His usual attacking spark was missing on the night, though.
Thiago Alcantara - 6.5/10
Thiago Alcantara's passing played a key role in keeping Liverpool ticking. The Spaniard drove forward on a few occasions too, helping the Reds amp up pressure on the visitors.
Georginio Wijnaldum - 6/10
Liverpool have surely gone through the motions this season, but none more so than Georginio Wijnaldum. The Dutchman has looked out of sorts over the past few months and didn't appear any better against Newcastle.
Mohamed Salah - 7/10
Mohamed Salah scored another superb goal on the night. But that was only enough for Liverpool to take a solitary point from the game.
Diogo Jota - 6/10
Apart from his good movement and positioning, Diogo Jota was wasteful on the day. He failed to make an impact and was taken off shortly after the hour mark as he appears to have run out of steam.
Sadio Mane - 6/10
Sadio Mane's loss of form has been worrying for the Liverpool faithful, and his performance on the night did nothing to alleviate those concerns. The Senegalese fumbled a huge chance in the first half, as he delayed pulling the trigger.
Roberto Firmino - 6.5/10
As always, the Brazilian looked to get in behind the opposition defence. He drifted to the wings to create space for his teammates to come into player. However, there was nothing spectacular from him on the night, and Firmino's goal drought continued.
Ratings of Liverpool Substitutes
James Milner - 7/10
James Milner constantly ran at Newcastle and pulled a save off Dubravka in an inspired outing off the bench.
Curtis Jones - 6/10
Curtis Jones was largely anonymous on the field after replacing Thiago Alcantara.