The result means that Shakespeare, who took over from Claudio Ranieri in February, is now the first British manager to win his first four Premier League games.
Leicester dominated from the off as Yohan Benalouane flashed an effort wide of the post in the seventh minute, while Robert Huth and Shinji Okazaki saw efforts cleared off the line before Vardy fluffed his lines on the rebound.
The hosts' perseverance paid off as they took the lead in style, Ndidi collecting Danny Drinkwater's pass and firing a ferocious effort from 25 yards out past Lee Grant and into the top corner of the net.
Mark Hughes's charges responded strongly as Marko Arnautovic dragged a low shot just wide after turning in the box and Saido Berahino fired straight at Kasper Schmeichel after breaking through on goal.
Okazaki then drew gasps in the stands with an acrobatic overhead kick over the top, before Grant was forced into a smart stop from Riyad Mahrez's powerful drive.
Far from shoring up their backline after the restart, Stoke were caught out after just two minutes played as Vardy doubled the home side's lead with a powerful volley from a Danny Simpson cross.
The Potters grew into the second half but were unlucky to see a goal wrongly ruled out for offside when Arnautovic poked home from Mame Biram Diouf's pass.
Leicester soon went back on the offensive and could have had more goals on the scoresheet were it not for an impressive display in between the sticks from Grant, while Peter Crouch fluffed a simple header from close range in the final minutes to add to Stoke's woes.
For all their impressive form, however, the Foxes remain six points above the bottom three, thanks to Hull City's 2-1 win over West Ham United, while Stoke remain ninth in the table.