Twin blasts hit Zaventem airport at about 07:00 GMT, with 11 people reported killed.
Another explosion struck Maelbeek metro station near EU headquarters an hour later, leaving about 20 people dead.
Brussels police have issued a wanted notice for a man seen pushing a luggage trolley through the airport.
He was pictured in CCTV footage with two other suspects who are believed to have died in the blasts.
The Islamic State (IS) group said it was behind the attacks in a statement issued on the IS-linked Amaq agency.
Belgium has raised its terrorism alert to its highest level. Three days of national mourning have been declared.
Prime Minister Charles Michel called the latest attacks "blind, violent and cowardly", adding: "This is a day of tragedy, a black day... I would like to call on everyone to show calmness and solidarity".
Two blasts tore through the departures area of Zaventem airport shortly after 08:00 local time (07:00 GMT).
A suicide bomber was "probably" involved, the Belgian prosecutor said.
Eleven people were killed and 81 wounded in the blasts, Belgian Health Minister Maggie de Block said.
Live: The latest updates
What we know so far
Why was Brussels attacked?
Crisis information
Some witnesses reported hearing shots fired and shouts in Arabic before the two explosions.
Others said that people fled the first blast, only to get caught in the second.
A third bomb failed to detonate and was destroyed by the security services.
A local firefighter, Pierre Meys, described seeing "war injuries".
"I think this is the worst thing I've ever seen in my career," he said.
"People were running over others that had fallen, I couldn't breathe. I can't believe I'm alive," 15-year-old Antoine told me as he walked with his school friends in a line of hundreds being escorted on foot and by bus to a sports hall, now a makeshift reception centre.
Three hearses passed, heading towards the ruins of the airport departure hall. People sobbed at the sight of them.
Several tourists were asking police what they should do now, where it was safe to go - and when the airport might reopen.
The police were confused too, but offered what little information they had, telling people to head to a reception centre. An officer repeatedly shouted: "Quickly, keep moving, evacuate, this is serious."
The metro blast occurred shortly after 08:00 GMT during the rush hour at Maelbeek station.
It struck the middle carriage of a three-carriage train while it was moving away from the platform.
Alexandre Brans told AP: "The metro was leaving Maelbeek station when there was a really loud explosion. It was panic everywhere. There were a lot of people in the metro."
Brussels Mayor Yvan Mayeur said "about 20" people had died and more than 100 had been injured, 17 of them severely.
Eyewitnesses recall explosions
In pictures: Brussels explosions
Full coverage
The station is close to EU institutions. The European Commission, the EU's executive arm, has told employees to stay indoors or at home. All meetings at EU institutions have been cancelled.
Ryan McGhee, a catering worker at a college in Brussels, told the BBC: "The entire city is in lockdown. People are calm at the moment but the atmosphere is tense."
Local and international travel has been suspended or disrupted and security tightened across Europe.
All flights have been cancelled. The airport is due to reopen on Wednesday.
Eurostar has cancelled all trains to and from Brussels. The Thalys France-Benelux train operator says the entire network is closed.
In the UK, security has been stepped up at Gatwick and Heathrow airports. The UK Foreign Office has advised British nationals to avoid crowded areas in Belgium.
UK Prime Minister David Cameron chaired a meeting of the Cobra response committee on Tuesday.
In France the cabinet has held an emergency meeting. There is also extra security at Dutch airports.
There has been strong international condemnation:
Belgium's Interior Minister Jan Jambon had said on Monday that the country was on the highest level of alert for possible revenge attacks after the capture on Friday of Salah Abdeslam, the main surviving suspect from the Paris attacks in November.
Mr Jambon told Belgian radio: "We know that stopping one cell can... push others into action. We are aware of it in this case."
European security experts had been braced for another attack for months. But it is always a huge shock when it actually happens.
If this was "revenge" for the arrest of Salah Abdeslam on Friday, it will be a source of considerable concern that a functioning terrorist network was able to respond so quickly and with such devastating effect.
It is possible that a cell linked to Abdeslam brought forward the timing of a future attack because they thought he might blow their cover.
Either way, it shows how advanced the planning was in terms of logistics, explosives, weapons and people willing to carry out such attacks on civilian targets.
The priority now will be to ensure that anyone else who poses an imminent threat to the public is apprehended as soon as possible. But it is clear that there are still huge gaps in intelligence, and Brussels is seen as a soft target.
In the words of French President Francois Hollande, the response from Europe will need to be "calm, lucid and determined" - and it will have to last for a long time.
More than 30 people are believed to have been killed and dozens injured in attacks at Brussels international airport and a city metro station.