The powerful blast early in the morning caused widespread damage to the restaurant, located in a multi-storey building on Tiradentes Square.
Those killed – who are believed to be staff – were flung out of the building by the force of the blast.
Among the injured, three people are in a serious condition, reports say.
The explosion happened at about 07:30 local time officials say.
The facade of the building was completely destroyed, and seven floors damaged, Brazilian media reported.
Officials are now checking the building to see if there is a risk of collapse.
Rio de Janeiro Mayor Eduardo Paes said most of the injured were passers-by.
“It was not a greater tragedy because the shops had only just begun to open,” he said.
The explosion showered Tiradentes Square with debris and disrupted rush-hour traffic.
The cause of the blast is being investigated, but fire officials say a strong smell of gas was reported just before the incident.
City fire official Ronaldo Alcantara said the restaurant had been closed on Wednesday, which was a holiday, the Associated Press news agency reports.
The official added that gas had probably leaked throughout the day and night, and the restaurant’s employees on Thursday morning may have somehow caused a spark that led to the blast.