He was the son of Gobryas and the son-in-law of Darius I of Persia, whose daughter Artozostra he had married. After the Ionian Revolt, Mardonius was sent in 492 BC to punish Athens for assisting the Ionians. He first stopped in the Ionian cities to depose the Persian tyrants and set up democratic governments, probably so the Ionians would not revolt a second time after the Persian army had passed through. His fleet and army then passed across the Hellespont, but the fleet was destroyed in a storm off of Mount Athos; according to Herodotus the Persians lost 300 ships and 20 000 men. Mardonius himself was commanding the army at the time, which was fighting a battle in Thrace. Mardonius was wounded, but was victorious; nevertheless, the loss of the fleet caused him to retreat back into Asia Minor. He was relieved of command by Darius, who led the invasion of Greece himself in 490 BC, and was defeated at the Battle of Marathon.
Mardonius came back into favour under Darius' successor Xerxes I. Xerxes was at first not interested in renewing the war with Greece, but Mardonius repeatedly tried to convince him that he must avenge Darius' defeat, in opposition to another advisor, Artabanus, who urged more caution in the matter. Herodotus, who portrays Mardonius as somewhat of an evil advisor (as opposed to a number of other good advisors whose arguments are never followed), says that Mardonius simply wanted to become governor of Greece. He was present at the Battle of Thermopylae, and after the Persian defeat at the Battle of Salamis, he attempted to convince Xerxes to stay and fight yet another battle. This time Mardonius could not persuade Xerxes, but when Xerxes left he did become governor of the parts of Greece that had been conquered. He allied with Alexander I of Macedon and recaptured Athens, which had been deserted before the Battle of Salamis. He offered to return Athens and help rebuild the city if the Athenians would accept a truce, but the Athenians rejected the truce and prepared for another battle.
Mardonius prepared to meet them at Plataea, despite the opposition from another Persian commander, Artabazus, who, like Artabanus, did not think that a much larger Persian army could automatically defeat the Greeks. Mardonius was killed in the ensuing battle (see Battle of Plataea). His head was cut off and placed on a stake, just as he had done to Leonidas at Thermopylae, and his body was never recovered by the remnant of the Persian army.