Two explosions hit Zaventem airport at about 07:00 GMT, and another struck Maelbeek metro station an hour later.
The government has not confirmed casualty numbers.
Brussels transport officials say 15 died at Maelbeek and media say up to 13 died at the airport.
Belgium has now raised its terror threat to its highest level.
The attacks come four days after Salah Abdeslam, the main fugitive in the Paris attacks, was seized in Brussels.
Prime Minister Charles Michel called the Brussels attacks "blind, violent and cowardly", saying they were a "tragic moment in our country's history. I would like to call on everyone to show calmness and solidarity".
Images on social media showed panic as people fled the airport.
All flights have been diverted. Eurostar has cancelled all trains to and from Brussels. The Thalys France-Benelux train operator says the entire network is closed.
Security has been stepped up at Gatwick and Heathrow airports and the UK Foreign Office has advised British nationals to avoid crowded areas in Belgium. UK PM David Cameron is chairing a meeting of the Cobra response committee on Tuesday morning.
France has stepped up security. President Francois Hollande has held a cabinet meeting to discuss the Belgian explosions. There is also extra security at Dutch airports.