Harvey Barnes was denied twice in quick succession by Sam Johnstone while Kasper Schmeichel saved from Matheus Pereira at the other end during a goalless first half.
Leicester took the lead in the 56th minute, with Belgian Dennis Praet crossing for compatriot Castagne to head in at the far post.
Vardy made it 2-0 on 74 minutes, scoring from the spot after he was fouled by Kyle Bartley.
He has now equalled Ruud van Nistelrooy's record of scoring in five successive away matches against the same opponent.
Last season's Golden Boot winner sealed the victory with a second penalty 10 minutes later, converting after Dara O'Shea had brought down James Justin.
Budweiser King of the Match Jamie Vardy
West Brom: 19 Sep v Everton (A)
Leicester: 20 Sep v Burnley (H)