Turkey, which accepts that many Christian Armenians were killed by Ottoman Turks, rejects that up to 1.5 million died and that it amounted to genocide - a term employed by many Western historians.
The Swedish resolution passed by an extremely narrow margin, with 131 parliamentarians voting in favour and 130 against, and 88 members staying away.
The measure was opposed by Sweden's centre-right coalition government, but three of their parliamentarians voted in favour of the motion, helping the opposition to get it through.
Zergun Koruturk, Turkey's ambassador to Stockholm, said the vote had delivered a major blow to "excellent ties", which she said were advancing towards a strategic partnership.
"It will not be easy to repair the damage," she said before returning to Turkey on Friday.
Carl Bildt, the Swedish foreign minister, said it was a "mistake to politicise history" and vowed that the government's position remains unchanged.
Sweden is among the few countries which openly support Turkey's troubled bid to join the European Union.
The Scandinavian nation's vote came a week after a key US Congressional panel approved a similar resolution, prompting Ankara to recall its ambassador.
Armenians say up to 1.5 million of their kin were killed in a systematic campaign of extermination during World War I as the Ottoman Empire, Turkey's predecessor, fell apart.
Turkey categorically rejects the genocide label and says the number of those killed in what was civil strife during wartime is grossly inflated.