Runners-up to Manchester City last season, Liverpool saw Philippe Coutinho test Newcastle goalkeeper Tim Krul with a second-half header, but Perez gave the hosts victory in the 73rd minute after a blunder by Alberto Moreno.
It was Newcastle’s fourth consecutive victory in all competitions, following their shock League Cup win over holders City in mid-week, and saw Alan Pardew’s side provisionally climb to ninth place in the table.
Liverpool, for whom striker Mario Balotelli endured another frustrating afternoon, are now nine points behind leaders Chelsea having played a game more.
Brendan Rodgers’s side now face a daunting trip to European champions Real Madrid in the Champions League on Tuesday, before hosting Chelsea in the league next weekend.
Newcastle lost Gabriel Obertan to a thigh injury in the 25th minute, but they went close to opening the scoring when Glen Johnson had to head a shot by Papiss Cisse off the Liverpool line.
Martin Skrtel headed wide for Liverpool shortly before half-time and Krul produced a sharp one-handed save to thwart Coutinho just before the hour, but it was Newcastle who broke the deadlock.
After an incursion down the Newcastle left led by Moussa Sissoko, the Frenchman’s pass into the box was intercepted by Moreno, but the Spaniard made the error of taking a second touch and Perez lashed home.
Newcastle substitute Remy Cabella saw an attempt to inflate the hosts’ lead thwarted by Liverpool goalkeeper Simon Mignolet after a one-two with Perez, but Pardew’s men held out regardless.
Leaders Chelsea host Queens Park Rangers later on Saturday, when they will be seeking to preserve their four-point advantage over second-place Southampton, who visit Hull City.
Fourth-place West Ham United are away to Stoke City, while Arsenal, who began the weekend in fifth, host winless bottom club Burnley.
The weekend’s headline fixture arrives on Sunday, when champions Manchester City — seeking a first win in four matches — welcome derby rivals Manchester United to the Etihad Stadium.