Turkey declared a day of national mourning on Sunday after twin bombings targeting police struck the heart of Istanbul near the home stadium of football giants Besiktas, killing 29 people.
A car bomb detonated outside the Vodafone Arena football stadium on the shores of the Bosphorus after the Super Lig match between Besiktas and Bursaspor while less than a minute later a suicide attacker struck a nearby park.
The authorities did not say who was behind the blasts, the latest in a year that has seen Istanbul and other cities rocked by a string of attacks blamed on Islamic State jihadists and Kurdish militants.
Prime Minister Binali Yildirim ordered flags to fly at half mast while President Recep Tayyip Erdogan postponed a planned trip to Kazakhstan, the state news agency Anadolu reported.
Twenty-seven of those killed were police and two were civilians, Turkish Interior Minister Suleyman Soylu said, adding that 10 suspects had been detained.
Soylu said the first blast was caused by a car bomb that struck outside Besiktas's football stadium.
It was followed 45 seconds later by another attack at the nearby Macka Park, carried out by a suicide bomber who blew himself up in the midst of police officers.
The Istanbul governor's office said 155 people were wounded, 19 of them were in intensive care unit, the private NTV broadcaster reported.
A forensic team on Sunday inspected the stadium and the park to collect evidence, an AFP journalist said. Municipality trucks meanwhile cleaned up the area.
"An act of terror targeted our security forces and citizens at Besiktas tonight," Erdogan said in a statement after the attacks.
Erdogan said the blasts were timed to cause maximum loss of life.
"We have witnessed once more here in Istanbul the ugly face of terror which tramples down any form of value and morals," he said.
'We will stand firm'
State broadcaster TRT showed images of the wreckage of a car, engulfed in flames with emergency services swarming around the scene outside the sports venue.
Other footage showed severely damaged police vehicles, while witnesses said the force of the blast had shattered the windows of nearby homes.
"I heard two explosions in less than one minute, followed by the sound of gunshots," one witness told AFP on condition of anonymity.
Besiktas is one of Istanbul's most popular football clubs, and its fans are known for their anti-establishment views and famously played a big role in the 2013 protests against Erdogan, who was then prime minister.
The club said that among those killed was Vefa Karakurdu, a senior police officer in charge of security at games who was a member of its congress, and Tunc Uncu who worked at its official merchandise shop.
Besiktas in a statement vowed to "stand firm against the vile attackers who will never achieve their goal."
Police cordoned off the area around the stadium immediately after the blasts, which occurred near the Ottoman-era Dolmabahce palace that houses Prime Minister Binali Yildirim's offices.
The scene is also about a kilometre (0.6 miles) from the busy Taksim Square, a magnet for tourists.
The government slapped a broadcast ban on footage of the attack, as is becoming typical in the aftermath of major incidents in the country.
'We will defeat terror'
There was no immediate claim of responsibility for Saturday's attack.
In his statement, Erdogan said that "the name or the method of the terrorist organisation which perpetrated the vile attack" did not matter.
"Nobody should doubt that we will defeat terror, terror groups, terrorists and of course the forces behind them, with God's help," he said.
In June, 47 people were killed in a triple suicide bombing and gun attack at Istanbul's Ataturk airport, with authorities blaming IS.
Another 57 people, 34 of them children, were killed in August in a suicide attack by an IS-linked bomber at a Kurdish wedding in the southeastern city of Gaziantep.
But there have also been deadly bombings claimed by the Kurdistan Freedom Falcons (TAK), seen as a splinter group of the outlawed Kurdistan Workers Party (PKK).
NATO chief Jens Stoltenberg condemned the "horrific acts of terror" in Istanbul, adding: "We stand united in solidarity with our ally Turkey. We remain determined to fight terrorism in all its forms."
The US embassy in Turkey wrote on Twitter: "Our hearts and prayers are with the people of #Istanbul tonight."
Turkey is still reeling from a failed July 15 coup blamed by the government on the US-based Islamic preacher Fethullah Gulen that has been followed by a relentless purge of his alleged supporters from state institutions.