Salah's brace proved the difference for the Reds, who now, at least temporarily, go to the top of the table after victory at Anfield.
The Blues could have easily scored inside the first minute, after Dominic Calvert-Lewin leaped above Virgil van Dijk to latch onto a cross - however, he was only able to head straight into the arms of Alisson.
Everton were then brought down to 10 men eight minutes before the break, with Ashley Young being awarded a second yellow after a late challenge on Diaz.
After the restart, the Reds struggled to break down a stubborn Everton side, unable to muster any notable opportunities.
However, Jurgen Klopp's side were handed a chance to score in the 75th minute after Diaz's cross hit the outstretched arm of Michael Keane in the area, earning the Reds a penalty.
Salah stepped up and smashed in past Jordan Pickford, who was rooted to the spot, to break the deadlock and give Liverpool the lead.
The game was sealed in stoppage time - a potent counter attack led by substitute Darwin Nunez, who unselfishly slipped the ball through to Salah to fire into a gaping net.
Here are the player ratings from the match.
Alisson (GK): 7
Clutched Calvert-Lewin's header in the first minute but didn't have much to do after that. Looked comfortable with the ball at his feet and played out from the back well.
Trent Alexander-Arnold (RB): 7
Made numerous forays into midfield and pulled the strings for much of the first half, even seeing a delightfully-struck half-volley sail just over the bar.
Ibrahima Konate (CB): 6
A few vital interventions in the first half and looked composed on the ball. However, was booked after restart and was very lucky to escape a second yellow after a clumsy challenge. Was swiftly replaced minutes later, with Klopp not wanting to take any chances.
Virgil van Dijk (CB): 7
Won the vast majority of his battles against Calvert-Lewin and when put under pressure in his own defensive third, he reacted well. Calm and composed for the captain.
Kostas Tsimikas (LB): 6
Was a real threat down the left-hand side, peppering Pickford's box with whipping crosses that needed to be dealt with. Defensively there was something to be desired, and was partial to a few fouls. Subbed.
Alexis Mac Allister (CM): 6
Hounded by Everton players in the early stages, leading to a few sloppy passes which put his teammates in a spot of bother. Settled as the game went on.
Ryan Gravenberch (CM): 6
Started strong but became less involved as the game continued, and got the ball caught in his feet a few times. Subbed.
Dominik Szoboszlai (CM): 7
Nearly scored an absolute worldie, seeing his dangerous dipping shot fly just over the bar. Acted very much as the connection between midfield and attack throughout. Solid, once again.
Mohamed Salah (RW): 8
Came close in his efforts to recreate his Puskas-winning effort against the Blues from 2018, curling one from the right side of the box onto the roof of the net. Proved the difference in the second-half, firing home from the spot before finishing off a counter-attack deep into stoppage time.
Diogo Jota (ST): 6
Flash header late in the game could have doubled Liverpool's lead if it wasn't straight down the throat of Pickford. Couple of trademark driving runs could have come to something with better finishes. Not much to speak of other than that.
Luis Diaz (LW): 8
Was a prominent force in Liverpool's counter-attacks in the first half, and was seemingly denied a goal by a last-ditch block from Young in the first half. Had the beating of the Young on most other occasions, however, and drew the foul that got the Everton man sent off. Saw his cross strike the arm of Keane in the second half, earning Liverpool a vital penalty. A menace for the Everton back line before being subbed.
Harvey Elliott (Ryan Gravenberch, 62'): 7
Helped control the middle of the park and was denied a belter of a goal late on by Pickford. Would have been the goal of his career so far.
Darwin Nunez (Kostas Tsimikas, 62'): 8
Came on and made himself a presence, leading the counter late on and providing the assist to seal the three points. Mr Chaos.
Joel Matip (Ibrahima Konate, 66'): 7
Came to the rescue as Konate threatened to level the playing field and get himself sent off. Cleaned up where needed.
Joe Gomez (Luis Diaz, 81'): 6
Helped hold off the tide as Everton sought an equaliser.