"The Iranian diplomat has died of his wounds," the medic at Sanaa's Modern German Hospital told AFP.
He said the diplomat, identified as Ali Asghar Assadi, had been "hit in the shoulder, abdomen and stomach."
"He was taken to the operating theatre then transferred to intensive care but died after an hour and half."
Nobody at the Iranian embassy was immediately available for comment but other diplomats said the victim was an embassy security officer.
"Unidentified assailants in a van fired on the diplomat three times as he was leaving the ambassador's residence near a shopping centre in Hadda," the main diplomatic district of Sanaa, a police source told AFP.