At least 24 other children were injured when the speeding truck collided head-on with the bus, said Javeed Ahmed, the state’s top police official.
The children, between the ages of 3 and 14, were studying at a school in the town of Etah.
Another police officer, Daljeet Chaudhry, said visibility was low due to dense fog.
Police officer Parasuram Singh said the truck driver suffered serious injuries to his legs.
The area is about 270 kilometres south-east of New Delhi.
State education authorities had closed all schools in the district because of a severe cold wave, and Mr Ahmed said authorities would check why the school had stayed open.
Prime Minister Narendra Modi tweeted his condolences, saying he was “anguished” by the event.
Accidents are common on Indian roads, with most blamed on reckless driving, poorly maintained roads and aging vehicles.