Nästa steg i processen är att lagförslaget nu ska skickas till Museveni som kan välja att använda sitt veto eller godkänna lagen.
Om presidenten skickar tillbaka lagförslaget till parlamentet en tredje gång kommer parlamentet att kunna åsidosätta hans veto med två tredjedelars majoritet och tvinga igenom lagen, som har stort stöd i Uganda.
Alla utom en parlamentsledamot sade ja till förslaget på tisdagen.
– Vi har en kultur att skydda. Västvärlden ska inte komma och styra Uganda, säger parlamentets talman Annet Anita Among.
Delar av lagförslaget ändrades dock. Att identifiera sig som homosexuell ska inte kriminaliseras, men att "ägna sig åt homosexuella handlingar" är ett brott som kan leda till livstids fängelse.
Yoweri Museveni har uppmanat till att "grov homosexualitet" inte ska kunna leda till dödsstraff, men parlamentet ignorerade uppmaningen. Formuleringen "grov homosexualitet" handlar bland annat om sexuella relationer med hiv-smittade personer, minderåriga eller utsatta människor.
Uganda har inte använt sig av dödsstraffet på många år.