The House voted 227-186 Wednesday to back the bill, with a handful of Republicans joining Democrats in the legislation. The Senate version, introduced by Virginia Sen. Tim Kaine, passed the upper chamber a month ago, also with bi-partisan support.
If he signed the bill, Trump would be barred from using military force against Iran without express authorization from Congress. The president has already promised a veto, which neither chamber appears to have enough Republican votes to override.
Without a two-thirds supermajority, the bill would be largely a symbolic gesture.
Kaine introduced the bill following Trump's decision in January to kill Iranian commander Qassem Soleimani in Iraq, a move that was not presented for congressional approval -- and one which drew a counterstrike from Tehran against two U.S. bases in Iraq. Dozens of U.S. personnel received concussion-like injuries in the attacks.
A veto notwithstanding, the bill could still serve as a check on Trump's powers against Iran, House Foreign Affairs Chairman Eliot Engel said Wednesday before the House vote.
"The American people don't want war with Iran. Congress has not authorized war with Iran," he said. "That should be crystal clear."