Romania came from behind to beat a side 12 places above them in the world rankings.
Belgium, ranked 30th in the world, started many of their Premier League players including Marouane Fellaini, Vincent Kompany and Simon Mignolet, while Chelsea's Eden Hazard started on the bench.
The visitors were the first to strike, with Aston Villa's Christian Benteke putting Belgium ahead after 22 minutes.
Belgium's lead lasted less than 10 minutes, Alexandru Maxim levelling the scores.
The home side were awarded a penalty in the second half after Tottenham defender Jan Vertonghen was judged to have handled the ball.
Granada winger Gabriel Torje stepped up to take the spot kick, slotting it past Mignolet to give the home side the lead.
Belgium pushed for an equaliser into injury time but were unable to overturn Romania's lead.