Police fired shots to try to stop two of the attackers just before they reached a security checkpoint at the arrivals hall at Ataturk airport, Europe's third-busiest, but they detonated their explosives.
Justice Minister Bekir Bozdag said 31 people were killed and 147 wounded, according to Turkish broadcasters. Istanbul Governor Vasip Sahin said authorities believed there were three suicide bombers, an account corroborated by witnesses.
The vast majority of those killed were Turkish nationals but foreigners were also among the dead.
"There was a huge explosion, extremely loud. The roof came down. Inside the airport it is terrible, you can't recognize it, the damage is big," said Ali Tekin, who was at the arrivals hall waiting for a guest when the attack took place.
A woman named Duygu, who was at passport control having just arrived from Germany, said she threw herself onto the floor with the sound of the explosion. Several witnesses also reported hearing gunfire shortly before the attacks.
"Everyone started running away. Everywhere was covered with blood and body parts. I saw bullet holes on the doors," she said outside the airport.
There was no immediate claim of responsibility for the latest in a string of suicide bombings in Turkey this year.