The Three Lions could have lost four games in a row for the first time in their history - just months after their charge to the World Cup semi-finals - but Marcus Rashford scored the only goal of the game early in the second half to fire his side back to winning ways.
The victory is England's first since the World Cup quarter-final and also only Switzerland's third defeat from their last 23 outings across all competitions.
Gareth Southgate made nine changes to the team which started Saturday's defeat to Spain, but his side began brightly when roared on by the Leicester crowd, and Danny Welbeck failed to make the most of one early headed chance when he darted across the near post but could not get enough on Danny Rose's corner.
Switzerland were soon gifted a chance to settle into the game, though, as Jack Butland's attempts to play out from the back almost backfired twice in quick succession - the second of which saw James Tarkowski robbed of the ball and Xherdan Shaqiri subsequently fire a low strike against the outside of the post when he should have done better.
The visitors continued to see more of the ball and their control over the game increased as the first half wore on, but England did come close to an opener in the 16th minute when Trent Alexander-Arnold's free kick was glanced narrowly wide of the target by a stooping Eric Dier.
Rashford and Alexander-Arnold then threatened with a couple of free kicks in quick succession, but Switzerland did manage to turn their possession into chances shortly after the half-hour mark as Butland was called into action.
The resulting corner ended with Ricardo Rodriguez ghosting past Welbeck far too easily on the left flank, cutting inside before drawing another stop from Butland with a powerful low strike.
Rodriguez came close again shortly afterwards, although on that occasion his shot was initially intended as a cross before skimming narrowly past the far post with Butland scrambling.
England did begin to improve towards the end of the first half, with Rose and Ruben Loftus-Cheek both drawing saves from Yann Sommer, but it was a lacklustre display in the opening 45 minutes and the hosts were a touch fortunate to still be level at the break.
Southgate opted against making any changes at the interval, though, and he was rewarded for his faith by an improved display in the opening stages - leading to the only goal of the game nine minutes after the restart.
Walker picked up an overhit corner on the right flank and subsequently delivered a pinpoint deep cross of his own, picking out Rashford who controlled a cushioned volley past Sommer from close range to score in back-to-back England games for the first time.
Southgate did turn to his bench on the hour mark as Harry Kane, Jesse Lingard and John Stones were all introduced, and the latter made an important contribution within minutes when he threw himself in the way of Shaqiri's goalbound effort from inside the box.
More subs followed throughout the second half which disrupted the flow of the game, although England were enjoying a much greater degree of control than in the first half and Dier squandered a decent chance to add a second when he skied a left-footed strike over the bar from just outside the area.
It wasn't until the five minutes of stoppage time that Switzerland looked like getting an equaliser, and even then the finishing was wayward as both Albian Ajeti and Edimilson Fernandes sent shots high and wide of the target when they should have done better.
England held out comfortably in the end to extend their unbeaten home record against Switzerland to 11 matches, winning seven of those.
ENGLAND (3-1-4-2): Butland; Walker, Tarkowski (Stones 61'), Maguire; Dier; Alexander-Arnold (Trippier 78'), Loftus-Cheek (Lingard 61'), Delph (Henderson 68'), Rose (Chilwell 79); Welbeck (Kane 61'), Rashford
SWITZERLAND (3-5-1-1): Sommer; Schar, Djourou, Akanji (Mehmedi 46'); Lichtsteiner, Freuler (Zuber 66'), Xhaka, Zakaria (Fernandes 66'), Rodriguez (Moubandje 46'); Shaqiri (Seferovic 80'); Gavranovic (Ajeti 66')