An own goal from Johan Djourou handed Portugal the lead on 41 minutes.
Andre Silva doubled their advantage before the hour, as the hosts finished top of Group B ahead of their opponents on goal difference.
Switzerland, who beat Portugal 2-0 at home last year, had won all nine previous qualifiers, but must overcome a two-legged play-off in November to earn a fourth straight World Cup appearance.
Elsewhere, France claimed their spot at next year’s tournament, with a 2-1 win over Belarus.
Holland will not be in Russia, despite beating Sweden 2-0 in Amsterdam.