The tie was decided by Ricardo Rodriguez’s controversial penalty in Belfast but both sides wasted chances to score on a soggy St Jakob Park surface.
Michael O’Neill’s team failed to register a shot on target at Windsor Park but Chris Brunt went close with two shots saved, while Rodriguez cleared Jonny Evans’ header off the line in injury time.
Striker Haris Seferovic squandered four good opportunities for the Swiss, who go through to the finals for an 11th time.
And Jonny Evans almost grabbed a late equaliser only to see his header cleared off the line in a rain soaked pitch.
It was cleared by by Ricardo Rodriguez, the man who converted from 12 yards in Belfast to send Switzerland to their fourth straight World Cup.
O’Neill’s bold team selection, which featured four changes and Stuart Dallas despite an injury concern, was reminiscent of the way he shuffled his pack against Ukraine at Euro 2016 when Northern Ireland were facing elimination after a poor performance against Poland.
And, as on that occasion, there was a vast improvement. The Northern Irish failed to register a single shot on target in Belfast but they threatened three times in the opening five minutes in Basel, most notably when Brunt’s long-range effort was pushed behind by Yann Sommer.
The Swiss finally awoke as Haris Seferovic glanced Xherdan Shaqiri’s cross wide and Blerim Dzemaili’s drive across the six-yard box was diverted over by Gareth McAuley’s outstretched leg.
The visitors were pressing higher, with more energy and in greater numbers, and the tension that was on the field in Belfast was instead in the stands here as another rasping Brunt effort tested Sommer.
Michael McGovern was keeping the visitors in the tie, saving at his near post from Shaqiri and with his legs from Steven Zuber, as his outfield team-mates notably tired on a quagmire of a pitch ruined by rain.
The first big chance the visitors were craving came nine minutes after the break with a terrific counter instigated by George Saville.
His pass to the right flank was seized upon by Jamie Ward and the Nottingham Forest winger’s cross was met by a Conor Washington header that just looped past Sommer’s far post.
That seemed to spook Switzerland into settling for what they already had as Northern Ireland started to take control, even if further chances were not forthcoming.
O’Neill brought on the more physical Josh Magennis and debutant Jordan Jones and switched to a 4-4-2 that soon featured centre-back Gareth McAuley as one of the forwards.
Seferovic spurned another chance – which probably contributed to the boos he received when taken off shortly after – and there was to be one final chance for the visitors.