Iran denies being involved in the assault and has threatened the US it will retaliate "immediately" if Tehran is targeted over the attack.
The news conference by Saudi military spokesman Colonel Turki al-Malki came after a summer of heightened tensions between Iran and the US over President Donald Trump unilaterally withdrawing America from Tehran's 2015 nuclear deal with world powers.
The US and Saudi Arabia allege Iran launched the attack, which Yemen's Houthi rebels earlier claimed as a response to the years-long Saudi-led war there which has killed tens of thousands of people.
In a press conference, Col al-Maliki pointed the finger firmly at Tehran and called the attacks as "an affront to international law".
He was speaking in front of an array of debris he claimed had been collected from the various focal points of the raids.
He added: "This attack did not originate from Yemen, despite Iran's best effort to make it appear so."
Regardless of who launched the attacks, the fact that they managed to hit was a major breach of Saudi Arabia's air defence systems.
ITV News Correspondent Emma Murphy says that if it is proved that Iran fired the missiles and drones into Saudi Arabia it will be a "game changer" for Middle Eastern relations
He said they had identified remnants of Iranian UAVs - drones - and Cruise missiles.
The attack on its oil sites came from the north and were "unquestionably sponsored by Iran", he said.
Boris Johnson and Donald Trump have discussed the need for a "united diplomatic response" to the attacks on Saudi oil facilities, Downing Street revealed after the revelations.
A spokesperson said: "They condemned the attacks and discussed the need for a united diplomatic response from international partners.
"They also spoke about Iran and agreed that they must not be allowed to obtain a nuclear weapon."
ITV News Correspondent Emma Murphy, who was at the press conference in Riyadh, reports that, according to the Colonel, the "debris proves this was an attack sponsored by Iran on Saudi Arabia".
Eighteen drones and seven cruise missiles were launched in the assault, Col al-Malki said
Three cruise missiles fell short of their targets - the Abqaiq oil processing plant, the world's largest, and the Khurais oilfield.
Two missiles have been recovered, and one is still being made safe.
Information from the failed missiles will be crucial in apportioning blame, he said.
Rising tensions in the region were further heightened earlier in the day when Iran warned the US that any action against it after will “immediately” be met with a response from Tehran, its state-run news agency has reported.
Iran’s president and foreign minister also may skip next week’s high-level meetings at the United Nations as the US has yet to issue them visas, IRNA reported.
The UN meeting had been considered as an opportunity for direct talks between Iranian President Hassan Rouhani and President Donald Trump amid a summer of heightened tensions and attacks after America's unilateral withdraw from Iran's nuclear deal with world powers a year ago.
However, the attack in Saudi Arabia and hardening comments from Tehran suggest such talks are increasingly unlikely.
Iran sent a note through Swiss diplomats on Monday reiterating that Tehran denies being involved in the Saudi attack, IRNA reported.
“If any action takes place against Iran, the action will be faced by Iran’s answer immediately,” IRNA quoted the note as saying.
The officer told the press conference that the drone could fly 745 miles (1,200km), while the cruise missile 435 miles (700km) - therefore the missile could not have reached its target if fired from Yemen.
There was no immediate response from the White House in relation to the new allegations and "evidence" produced by the Saudis.
However, president Donald Trump had tweeted in the hours before the press conference that he had told his officials to "substantially increase sanctions on Iran".
Speaking later on Wednesday, Mr Trump added that the US was in a strong position and that a range of options "including war" were available.
US Secretary of State Mike Pompeo, who is currently visiting Saudi Arabia in the wake of the attacks, described them as "an act of war".
Despite pointing the finger at Iran and dismissing speculation that Yemen's Houthi rebels were behind the attacks, those rebels held their own press conference threatening to attack the United Arab Emirates.
Yahia Sarie, a spokesman for the Houthi forces, said they have "dozens of targets" in the UAE that "could be targeted at any time".
He also alleged that they used "other drones to disrupt the enemy so the main drones can reach the target" during Saturday's attacks.
Meanwhile, US Secretary of State Mike Pompeo has arrived in the Red Sea city of Jeddah, where he was scheduled to meet Saudi Crown Prince Mohammed bin Salman.
Pompeo told reporters en route to Saudi Arabia that "it doesn't matter" whether the Houthis claim they were behind the attack.
"This was an Iranian attack," he said.
"It doesn't change the fingerprints of the ayatollah as having put at risk the global energy supply," he said, referring to Iran's Supreme Leader Ayatollah Ali Khomenei.