The Three Lions were by no means spectacular, but Gareth Southgate will in all likelihood be content as they got the job done despite fielding a somewhat unfamiliar starting XI.
Nevertheless, Southgate may have expected more from a first half that Switzerland had by far the better of, with Breel Embolo's headed opener one of nine shots to England's two.
But a fierce Luke Shaw hit back just before the break to have the hosts level at the interval.
England enjoyed greater control in the second half and eventually dealt the decisive blow via Kane's penalty, his 49th international strike, leaving him behind only Wayne Rooney (53) for the most England goals.
Victory looked unlikely for a while, however. The Three Lions found themselves trailing after 22 minutes as Embolo nodded in from Xherdan Shaqiri's right-wing cross.
It would have been 2-0 a few moments later were it not for Jordan Pickford, whose sharp reflexes ensured Fabian Frei's goal-bound effort was pushed on to the crossbar.
Ricardo Rodriguez's long-range strike forced Pickford into action again late in the half, before Embolo scuffed the rebound wide.
England capitalised on those let-offs on the stroke of half-time when Shaw ran on to Conor Gallagher's cut-back and smashed home from 20 yards.
Shortly after the restart, Kane's attempted lob from a tight angle came back off goalkeeper Jonas Omlin's face and debutant Marc Guehi's glancing header at the resulting corner flew agonisingly wide.
England's belief grew as the half progressed and Kane made no mistake from the spot late on after Steven Zuber handled Guehi's header inside the box.