WASHINGTON, Oct. 25 — Once again defying a veto threat from President Bush, the House on Thursday passed a bill to provide health insurance for 10 million children. But supporters did not have enough votes to override the promised veto.

The bill was approved by a vote of 265 to 142, less than the two-thirds needed to override a veto.

Last week, when the House considered a similar bill vetoed by Mr. Bush, supporters fell 13 votes short of the number needed to override. The roll calls are not directly comparable because several lawmakers were absent on Thursday, many of them helping constituents cope with the California wildfires.

Speaker Nancy Pelosi said the latest vote was “a step forward” toward the goal of insuring millions of children from low-income families.

But the gains were not immediately evident in the roll call. Of the Republicans who voted against the bill last week, none voted for the new version. And one Republican who supported the old bill, Representative Vernon J. Ehlers of Michigan, voted against the new one, citing concerns that the measure had been brought up on short notice, without enough input from Republicans.