Turkey’s vice president said the attack was carried out by a suicide bomber, who was later arrested by the police.
Ambulances raced to the scene on the packed Istiklal Avenue, which police had quickly cordoned off. The area, in the Beyoglu district of Turkey’s largest city, had been crowded as usual at the weekend with shoppers, tourists and families.
Video footage obtained by Reuters showed the moment the blast occurred in the centre of the avenue, sending debris into the air and leaving several people lying on the ground.
“Efforts to defeat Turkey and the Turkish people through terrorism will fail today just as they did yesterday and as they will fail again tomorrow,” Erdogan told a news conference.
“Our people can rest assured that the culprits behind the attack will be punished as they deserve,” he said, adding that initial information suggested “a woman played a part” in it.
“It would be wrong to say this is undoubtedly a terrorist attack but the initial developments and initial intelligence from my governor is that it smells like terrorism,” Erdogan said.
Nobody has claimed responsibility for the blast, but Istanbul and other Turkish cities have been targeted in the past by Kurdish separatists, Islamist militants and other groups.
“When I heard the explosion, I was petrified, people froze, looking at each other. Then people started running away. What else can you do,” said Mehmet Akus, 45, a worker in a restaurant on Istiklal.
“My relatives called me, they know I work on Istiklal. I reassured them,” he told Reuters.
A helicopter flew above the scene of the blast and a number of ambulances were parked in nearby Taksim Square.
The Kasimpasa police station said all crews were at the scene but gave no further details.
Local media said the Istanbul chief public prosecutor’s office had launched an investigation into the blast.
The Turkish Red Crescent said blood was being transferred to nearby hospitals.
If confirmed, it would be the first major bomb blast in Istanbul in several years.
Twin bombings outside an Istanbul soccer stadium in December 2016 killed 38 people and wounded 155 in an attack claimed by an offshoot of the militant Kurdistan Workers Party (PKK).