The bus landed on its roof when it hit the main Rio thoroughfare of Avenida Brasil, the BBC reported.
Five men and two women were killed.
Globo TV showed firefighters evacuating injured passengers during the evening rush hour.
A witness told Globo the driver was involved in a dispute with a passenger moments before the accident.
The cause was being investigated.
Interpol investigating stolen passports on missing flight
Scarlett Johansson steps out with fiance after pregnancy reveal