WASHINGTON, Nov. 13 — President Bush on Tuesday vetoed a major spending measure that would have funded education, health care and job training programs, saying it contained money for too many of the special projects known as earmarks. But he signed a $459 billion bill to increase the Pentagon’s nonwar funding.

The veto, on a measure providing $150.7 billion in discretionary spending for the Departments of Education, Labor, and Health and Human Services, was announced as Bush was en route to Indiana to deliver an economics speech in which chastised Congress for “wasteful spending” and describe it as acting “like a teenager with a new credit card.”

The president’s action guaranteed a new round of wrangling with the Democrats who control Congress over war costs and clashing domestic spending priorities.

The president’s criticisms of Congressional spending priorities have grown steadily more pointed. But in her immediate response to the veto, the Democratic speaker of the House, Representative Nancy Pelosi, adopted a restrained tone, saying that compromise was possible but that the president needed to help if the two sides were to find “common ground.”