Den historiske beslutning sætter punktum for 200 års svensk alliancefrihed.
Afstemningen fandt sted efter en seks timer lang debat.
Ud af de otte partier i Riksdagen stemte kun Vänsterpartiet (V) og Miljöpartiet (MP) nej.
43 af Riksdagens medlemmer var fraværende.
Efter avstemningen brød Riksdagen ud i applaus, selv om Nato-medlemskabet endnu ikke er sikret.
– Et historisk øjeblik og en af de vigtigste sikkerhedspolitiske beslutninger i landets historie, sagde udenrigsminister Tobias Billström fra Moderaterna efter afstemningen.
Sverige kan først blive medlem af Nato, når samtlige 30 lande i Nato har sagt ja til Sveriges medlemskab. Det mangler at blive ratificeret af parlamenterne i Tyrkiet og Ungarn.
Ungarns nationalforsamling ventes at stemme om Sverige snart, men det er uklart, hvornår Tyrkiets præsident, Recep Tayyip Erdogan, som har sagt ja til finsk Nato-medlemskab, vil give svenskerne grønt lys.
Billström var dog optimistisk under onsdagens debat i Riksdagen og sagde, at han er overbevist om, at både Ungarn og Tyrkiet vil give deres tilslutning inden Natos topmøte i Vilnius 11. og 12. juli.
– Det er selvsagt,at vi kan blive medlemmer inden Vilnius, sagde han.
Vänsterpartiets udenrikspolitiske talsperson Håkan Svenneling frygter, at prisen for svensk Nato-medlemskab vil blive høj.
– Det er problematisk at indgå en militær allianse med lande, som ikke er demokratiske, og hvor vi stadig ser, at demokratiet bliver svækket.
Hans udtalelse var en henvisning til Tyrkiet og Ungarn.
Vänsterpartiet frygter også at krigsfaren vil blive øget, når Sverige kommer med i Nato.
/ritzau/TT
Andre læser også