On 18 minutes, the visitors drew first blood as a counter-attack culminated in the ball being worked to Shelvey, who dummied two opposition defenders and slotted into the bottom-right corner.
Leicester stepped up a gear and ended the first half strongly, only for their defence to let them down when Florian Lejeune's long ball bounced between Harry Maguire and Wes Morgan, allowing Perez to ghost in and chip an effort over Schmeichel.
Six minutes from the end Vardy got the finishing touch on a Shinji Okazaki header from point-blank range to set up a nervy finish for the Tynesiders, who nonetheless held on for all three points.
LEICESTER CITY (4-2-3-1): Schmeichel, Simpson (Okazaki 56'), Morgan, Maguire, Chilwell; Iborra (Choudhury 41'), Silva; Mahrez, Diabate (Gray 76'), Albrighton; Vardy
NEWCASTLE UNITED (4-2-3-1): Dubravka; Yedlin, Lascelles, Lejeune, Dummett; Shelvey, Diame (Hayden 80'); Ritchie, Perez, Kenedy (Atsu 62'); Gayle (Joselu 69')