The bill, known as the American Rescue Plan, passed 219-212. No Republicans voted for it, and two Democrats voted against it: Rep. Kurt Schrader, D-Ore., and Jared Golden, D-Maine.
The measure now heads to the Senate where it faces a rocky path in the evenly divided chamber.
No Senate Republicans are expected to support the bill, citing its size and scope, so the president will have to count on every one of the 50 Democratic senators — and a tie-breaking 51st vote from Vice President Kamala Harris — to make sure its key pillars remain in the bill.