A win over Romania would have secured qualification in the last-16 of the competition but a 1-1 draw against Romania means any celebrations have been put on hold.
Bogdan Stancu's 18th-minute penalty, his second of the tournament, had given Romania a halftime lead before Admir Mehmedi leveled after the break.
It means Switzerland, which faces host nation France in its final Group A game, will now have to wait until Sunday to make sure of its place in the next round.
Vladimir Petkovic's side, which defeated Albania in its opening game, created plenty of chances against a Romania side which has failed to win a game at the European Championship finals for 16 years.
And Romania, which was beaten by France in the opening game of the tournament, began the game nervously with Switzerland creating a number of opportunities.
Swiss forward Haris Seferovic, who rarely looked convincing in front of goal, wasted an early opening as his team set the tempo.
But Romania remained stubborn and then from nowhere it took the lead.
Alexandru Chipciu weaved his way into the penalty area and when Stephan Lichtsteiner appeared to pull the Romanian's shirt, referee Sergei Karasev pointed to the spot.
Stancu, who scored a penalty against France in the first game, strode forward confidently to fire his side into the lead.
Romania, which had failed to score more than one goal in its past eight matches against Switzerland, went close to adding a second soon after when Cristian Sapunaru lashed an effort against the post from close range.
Playing on the counter attack, Romania continued to look dangerous in the early part of the second half and substitute Ovidiu Hoban fired wide as Switzerland struggled to deal with its opponent.
It proved a costly miss as within 12 minutes of the restart, Switzerland was level courtesy of Mehmedi's rasping effort.
Romania failed to deal with a corner and the Bayer Leverkusen striker unleashed an unstoppable volley with his left foot which flew into the far corner.
That goal breathed new life into the Swiss but despite constant pressure it failed to create too many more opportunities.
Blerim Dzemaili, making his 50th appearance for Switzerland, fired over when well placed while Romania rarely threatened.
It leaves Switzerland with four points from two games with Sunday's mouthwatering clash with France to come.