The 27-year-old, who joined the Foxes from Fleetwood Town in 2012, scored 16 goals last season to help the team gain promotion to the Premier League.
In total, Vardy has found the net 27 times in 70 appearances for the club.
"I'm over the moon. We all know that the club wants to keep improving and stay in the Premier League, and I definitely want to be a part of that," he told Leicester's official website.
"Nigel Pearson brought me here and he wants the club to maintain their Premier League status. He was a big influence [on me signing a new deal] and now I've just got to repay him on the field."
Leicester started the new Premier League season last Saturday with a 2-2 draw at home to Everton.