Added-time goals from Nigel de Jong and Nourdin Boukhari secured AFC Ajax's first away win in Europe for 15 matches and ended the resilience of FC Thun, who twice came from behind to draw level in UEFA Champions League Group B.
Wesley Sneijder put the visitors ahead only to see Mauro Lustrinelli level the scores and when Yannis Anastasiou's goal was cancelled out by Adriano Pimenta 16 minutes from time, the game seemed destined to finish honours even. But as Thun tired, Ajax eventually found their killer instinct.
Neither side had enjoyed the best build-up to the match, Thun losing 6-1 at home to FC Zürich at the weekend and Ajax failing to score for the third Eredivisie game running. The visitors had the better of the early exchanges, Hedwiges Maduro playing Sneijder into a dangerous position 12 metres from goal but Thun defender Armand Deumi did just enough to put him off.
Thun responded and Lustrinelli should have made more of an ideal cross by Alen Orman but his header was badly mistimed. Ajax nearly made the Swiss team pay instantly as Sneijder's low shot from distance was turned goalwards by Zdeněk Grygera, but Eldin Jakupovic in the Thun goal was alert to the danger.
The action then moved to the other end and when Maarten Stekelenburg punched decisively clear from the head of Tiago Bernardini, Silvan Aegerter fired just over following a corner. Then, from a free-kick for which Anastasiou received the night's first yellow card, Deumi diverted an effort from Ljubo Milicevic just wide.
So it was marginally against the run of play that Ajax took the lead. From Urby Emanuelson's fine cross, Jakupovic could only parry Anastasiou's header straight to Sneijder, who drilled a low shot unerringly past him with the slightest deflection off Deumi.
Bookings followed for Tomáš Galásek, putting the Ajax captain out of their next match, and Milicevic, who made way for Adriano before the half was out. The substitution came moments after Maduro had thumped the foot of the Thun post with a long-range effort.
After the break Jakupovic was soon involved again, clearing up his own mess after a poor clearance, diving to turn Steven Pienaar's drive around the post then pulling off a double save from Ryan Babel's shot and Anastasiou's follow-up.
The goalkeeper's heroics buoyed the home supporters, who soon had something more positive to shout about as Adriano played Lustrinelli in behind the Ajax defence. He shook off the attentions of Grygera and fired confidently into the corner of the Ajax net to send the Stade de Suisse into raptures.
Their joy was short-lived though as Pienaar and De Jong, both inconspicuous in the first half, combined to set Babel free on the left and his centre was turned in from close range by Anastasiou. Suddenly the only audible voices in the crowd were Dutch.
Thun rallied and Leandro Vieira then stole away down the left and pulled the ball back for Aegerter at the edge of the area. His shot was wayward but rebounded off Bernardini, and there was Adriano to pounce on the loose ball and put the home side level again.
As the clock ticked into added time, Ajax caught the home defence flat-footed and Jakupovic was unable to keep out De Jong's rising effort. Thun frantically attempted to push for a third goal of their own, but Pienaar's neat back-heel enabled Boukhari to put the result beyond doubt.