Shakespeare took caretaker charge when Claudio Ranieri – who guided the Foxes to a fairytale Premier League title triumph last term – was sacked on February 23.
The 53-year-old has won his two games in charge, against Liverpool and Hull, to move the champions three points clear of the relegation zone.
Shakespeare has never managed full-time, but he has spent seven of the last eight seasons on the Leicester coaching staff.
He was assistant to both Ranieri and the Italian’s predecessor Nigel Pearson at the King Power Stadium.
“Craig’s skills as a coach and the high regard in which he is held by everyone at the club were well known to us,” vice-chairman Aiyawatt Srivaddhanaprabha told the official Leicester website.
“We always knew the team would be in good hands when we asked him to take charge a fortnight ago.
“He has initiated the type of positive response that we hoped change would bring, showing great leadership qualities and composure under considerable pressure to produce two very important results.
“We have asked him to continue to lead the team this season and we are very happy that he has accepted.”
First team and goalkeeping coach Mike Stowell will continue to assist Shakespeare, starting with Tuesday night’s Champions League last-16 second leg against Sevilla.