The incident occurred in Barpeta district in eastern Assam state and those killed included 13 children, the Press Trust of India reported.
Police said the two buses were traveling one behind the other when the one in the front was struck by the truck coming from the opposite direction. The bus was then rear-ended by the second vehicle.
Both the passenger buses overturned and 28 passengers were pronounced dead at the scene, police said. The injured were taken to a nearby hospital.
The victims were brick-making workers and their children 10 going to work, police said.
PTI said the driver of the truck fled the scene and police were looking for him.