The vote was 18-3 in favor of the legislation, paving the way for its consideration by the full Senate.
Lawmakers who backed the bill said they do not believe that its passage, which would require support by the US House of Representatives and President Donald Trump to become law, would violate terms of the international nuclear agreement with Tehran reached in 2015.
Both Republicans and Democrats have been clamoring for a response to Iran’s ballistic missiles development and other activities.
Trump has criticized the nuclear deal, which was opposed by every Republican in Congress and several Democrats. But he has so far not moved to pull the United States out. Instead, his administration has said it would closely police Iran’s compliance with the bill and review it, with an eye toward possibly modifying it to make it stronger.