Pierre Aubameyang denied ten-man Switzerland an opening Group B victory as Gabon claimed a hard-fought point.
St Etienne striker Aubameyang cancelled out Admir Mehmedi's twice-taken penalty with a neat finish as the half-time whistle approached.
Switzerland could hardly have got off to a better start after the lively Innocent Emeghara was felled by defender Henri Ndong inside the box and Colombian referee Wilmar Roldan pointed to the spot.
Mehmedi sent keeper Didier Ovono the wrong way, only to see Mr Roldan order the kick to be retaken because of encroachment. And although the Dynamo Kiev man changed sides the result was the same.
Gabon endured a torrid start to the game as their defence was repeatedly breached, but having hit the bar through Jerry Obiang, got themselves back into it on the stroke of half-time when Aubameyang converted Alexander Ndoumbou's cross from close range.
Aubameyang perhaps should have doubled his tally after the break, but headed Levy Madinda's 63rd-minute corner straight at keeper Diego Bengalio, and Ovono did well to keep out substitute Pajtim Kasami's drive six minutes later.
Fabian Frei and Ndoumbou might have snatched victory for their respective sides as time ran down, but the Swiss finished with ten men after midfielder Oliver Buff was dismissed for a second bookable offence.