The tragedy struck the Pune-Ahmedabad bus near Kuregaon village in Thane district, said investigating officer Sudhakar Yenare.
According to preliminary information, the accident occurred when the bus driver was attempting to overtake a Hazira-bound BPCL (Bharat Petroleum Corporation Limited) oil tanker and rammed into it, around 70 km north of Mumbai.
A speeding car behind the bus also lost control and hit the sleeper bus. Details of the car's occupants and their fate were not immediately known.
Villagers and fire brigade officials managed to douse the blaze after the accident, which caused massive traffic snarls on the busy highway and other arterial roads.
The injured victims, two of whom are reported to be serious, were rushed to Manor town civil hospital while one was shifted to a Thane hospital.
There were 21 passengers on the ill-fated bus, besides the driver and conductor. The condition of the remaining passengers and the bus driver and conductor was not known.
The bus, which left Pune for Ahmedabad around 6.30 p.m. Tuesday, was completely burnt.
Senior district and police officials besides senior people from the travel company rushed to the site to supervise rescue operations.
The police diverted traffic to the Wada-Bhiwandi Road and managed to resume controlled vehicular movement on the highway by 8 a.m.
By late afternoon, the highway was cleared and normal vehicular traffic had resumed.