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 (04:05 Iran time on Thursday).
On Friday, the president told NBC News that he decided not to give final approval to the planned strikes because of the predicted death toll.
"I didn't like it. I didn't think it was proportionate," he said.
EXCLUSIVE: In an exclusive interview with Chuck Todd, President Donald Trump says he hadn’t given final approval to Iran strikes, no planes were in the air. pic.twitter.com/qHtTx7Zql5— Meet the Press (@MeetThePress) June 21, 2019
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. Iran has announced it will soon exceed international agreed limits on its nuclear programme.
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 US has now asked the United Nations Security Council to meet on Monday to discuss Iran, Reuters news agency reports.
What had been planned?
In its initial report, 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.
But Mr Trump refuted this report on Friday, telling NBC that no planes were in the air.
The strikes had been set to take place just before dawn on Friday to minimise risk to the Iranian military or to civilians, the New York Times report added.
Tweeting on Friday, Mr Trump said three sites had been targeted.
The Associated Press quoted a US official as saying the strikes had been recommended by the Pentagon and had been among options presented to senior administration officials.
According to the New York Times, top Pentagon officials warned a military response could result in a spiralling escalation with risks for US forces in the region.
The operation was called off after President Trump spent most of Thursday discussing Iran with his national security advisers and congressional leaders, AP reports.
US Secretary of State Mike Pompeo and National Security Advisor John Bolton had pushed for a hardline stance, but congressional leaders urged caution, the agency says.
Separately, Reuters quoted two Iranian officials as saying Tehran had received a message from Mr Trump through Oman overnight warning about an imminent US attack.
That report was later denied by a spokesman for Iran's national security council, who said there was no truth to it and no message was sent.
What does Iran say?
An official warned that "any attack against Iran will have regional and international consequences".
"When you violate Iranian territorial space, then we defend," Seyed Sajjadpour, one of Iran's Deputy Foreign Ministers, told the BBC.
He also said it was clear that there were members of Donald Trump's administration who were intent on overthrowing Iran's government.
What other reaction has there been?
In the US, Democratic House Speaker Nancy Pelosi said America had no appetite for war with Iran, while the leading candidate for the Democratic presidential nomination, Joe Biden, called Mr Trump's Iran strategy a "self-inflicted disaster".
Russian President Vladimir Putin said a war would be a "catastrophe with unpredictable consequences".
UN Secretary General Antonio Guterres urged all parties to exercise maximum restraint.
The US Federal Aviation Administration (FAA) issued an emergency order on Thursday evening prohibiting US airlines from operating in an overwater area of Tehran-controlled airspace nearby in response.
President Trump's decision to order – and then abort – an attack still sends a powerful message to Tehran.
The two countries came to the brink of direct conflict. But in this complex game of signalling, just what message will the Iranian leadership receive?
It, after all, had sent a significant warning of its own by downing an unmanned US reconnaissance drone.
Mr Trump initially appeared to play down the incident – but then apparently came the orders for a US retaliatory strike. That was followed by a last-minute change of heart.
The danger now is that Iran receives mixed messages that convey uncertainty and lack of resolve. This might encourage some in Tehran to push back at the Americans even harder.
There appears to be no diplomatic "off-ramp" in this crisis.
US economic sanctions are hitting home. Tehran is under pressure. Escalation remains an ever-present danger.
What happened with the drone?
Iran's Islamic Revolutionary Guard Corps (IRGC) announced its air force had shot down a US "spy" drone on Thursday morning after the unmanned aircraft violated Iranian airspace near Kuhmobarak in the southern province of Hormozgan.
IRGC commander-in-chief Maj-Gen Hossein Salami said the drone's downing was a "clear message" to the US that Iran's borders were "our red line".
However, US military officials maintain the drone was in international airspace over the Strait of Hormuz at the time.
Iranian officials say two warnings were issued 10 minutes before the drone was shot down.
Amir Ali Hajizadeh, a high-ranking officer in the IRGC, said another military aircraft, carrying 35 passengers, had been flying close to the drone. "We could have shot down that one too, but we did not," he said.
The shooting down of the drone followed accusations by the US that Iran had attacked two oil tankers with mines last Thursday just outside the Strait of Hormuz, in the Gulf of Oman.