President Donald Trump has said the US military was “cocked and loaded to retaliate” against Iran, but he changed his mind 10 minutes before planned strikes.
Attacks on three sites were planned in response to the shooting down of a US unmanned drone this week.
Mr Trump said he had called off strikes after being told 150 people would die.
He tweeted: “10 minutes before the strike I stopped it, not proportionate to shooting down an unmanned drone.”
The late reversal was first reported by the New York Times on Thursday night. The newspaper said the operation had been “in its early stages” when Mr Trump stood the US military down.
“I am in no hurry,” Mr Trump said on Friday. “Our military is rebuilt, new, and ready to go, by far the best in the world.”
Mr Trump said Iran had downed the drone on Monday, despite an earlier US military statement that the incident happened at 23:35 GMT on Wednesday.
Tehran says the unmanned US aircraft entered Iranian airspace early on Thursday morning. The US maintains it was shot down in international airspace.
Tensions have been escalating between the two countries, with the US recently blaming Iran for attacks on oil tankers operating in the region.
Last year, the US unilaterally pulled out of a 2015 nuclear deal aimed at curbing Iran’s nuclear activities.
“Iran can NEVER have nuclear weapons,” Mr Trump said in his tweets on the aborted strikes – also revealing that increased economic sanctions against Iran were “added last night”.
The New York Times said that as late as 19:00 local time (23:00 GMT) on Thursday, US military and diplomatic officials had still expected the strikes to take place on agreed targets, including Iranian radar and missile batteries.
“Planes were in the air and ships were in position, but no missiles had been fired when word came to stand down,” the newspaper reported, citing an unnamed senior administration official.
The strikes had been set to take place just before dawn on Friday to minimise risk to the Iranian military or to civilians, the newspaper added.
Tweeting on Friday, Mr Trump said three sites had been targeted.