Background. Spinal anesthesia induced hypothermia resulting in shivering and inducing adverse complications for the patient. Meperidine effectively prevent the incidence of shivering but has many side effects. Granisetron and ondasetron are known to prevent shivering with minimal side effects when working in thermoregulation. Aim. Efficacy of granisetron compared to ondansetron and meperidine in preventing shivering after spinal anesthesia. Method. The study was a double-blind randomized clinical trial of 97 male/female subjects, aged 18-65 years, physical status ASA I and II with emergency or elective surgery in RSUP Dr. Sardjito Yogyakarta. Subjects divided into three groups: Granisetron 40 mcg/kgbw (group G), Ondansetron 8 mg (Group O) and Meperidine 0.4 mg/kgbw (group M). Results. We found shivering in Group G showed 10 subjects (31.3%), group O showed 15 subjects (45.5%) and group M showed 10 subjects (31.3%) (p=0.386). Group G decreased the severity of shivering because grade 3 and 4 did not occur at 60 minutes, better than group O, which showed 5 subjects (15.2%) experiencing grade 3 and 1 subject (5%) experiencing grade 4. (p=0.044). Conclusion. Prophylactic granisetron 40 mcg/kgbw before spinal anesthesia reduces the severity of shivering compared to ondansetron 8 mg. Prophylactic granisetron 40 mcg/kgbw and ondansetron 8 mg reduced the incidence of shivering same as meperidine 0.4 mg/kgbw. Keywords. Shivering, Spinal Anesthesia, Granisetron, Ondansetron, Meperidine.