Samoa put their off-field issues aside to beat Canada 23-13 in Vannes, France, on Friday.
Tries from replacement duo Anthony Perenise and Winston Stanley helped the islanders pick up a much-needed win ahead of their match against England at Twickenham.
Canada's response came through centre Conor Trainor while scrumhalf Gordon McRorie kicked two penalties and James Pritchard a conversion.
Samoa led 9-3 at the break thanks to the boot of flyhalf Michael Stanley.
Canada – Try: Conor Trainor. Conversion: James Pritchard. Penalties: Gordon McRorie (2).
Samoa – Tries: Anthony Perenise, Winston Stanley. Conversions: Michael Stanley (2). Penalties: Michael Stanley (3).
Canada – 15 James Pritchard, 14 Jeff Hassler, 13 Conor Trainor, 12 Ciaran Hearn, 11 DTH van der Merwe, 10 Connor Braid, 9 Gordon McRorie, 8 Jebb Sinclair, 7 Nanyak Dala, 6 Kyle Gilmour, 5 Brett Buekeboom, 4 Jamie Cudmore, 3 Jason Marshall, 2 Aaron Carpenter, 1 Hubert Buydens (c).
Subs: 16 Ray Barkwill, 17 Jake Ilnicki, 18 Andrew Tiedemann, 19 Jon Phelan, 20 Richard Thorpe, 21 Sean White, 22 Patrick Parfrey, 23 Jordan Wilson-Ross.
Samoa – 15 Ahsee Tuala, 14 Alofa Alofa, 13 Rey Lee Lo, 12 Alapati Leiua, 11 David Lemi (c), 10 Michael Stanley, 9 Kahn Fotuali'i, 8 Ofisa Treviranus, 7 TJ Ioane, 6 Maurie Fa'asavalu, 5 Dan Leo, 4 Filo Paulo, 3 Census Johnston, 2 Wayne Ole Avei, 1 Zac Taulafo.
Subs: 16 Maatulimanu Leiataua, 17 Viliamu Afatia, 18 Anthony Perenise, 19 Kane Thompson, 20 Jack Lam, 21 Pele Cowley, 22 Winston Stanley, 23 Faatoina Autagavaia.
Photo: Canada Rugby