Lupita Nyong'o has won the best supporting actress Oscar at the 86th Academy Awards for her role in 12 Years a Slave, defeating a field that included Sally Hawkins for Blue Jasmine and American Hustle's Jennifer Lawrence.

Nyong'o, who was born in Mexico but grew up in Kenya, played Patsey in 12 Years a Slave, her first film acting role; her most memorable scene was one in which she receives a flogging for wanting to wash with soap. The film was directed by Steve McQueen, and based on the real-life memoir of kidnap victim Solomon Northup (played by Chiwetel Ejiofor); it also starred Michael Fassbender and Benedict Cumberbatch.

In a moving acceptance speech, Nyong'o said: "It doesn't escape me for one moment that so much joy in my life is due to so much pain in someone else's" – the slaves whose story was told in Solomon Northup's memoir on which the film was based.

She thanked her co-stars and her director Steve McQueen, saying: "Thank you for putting me in this position; it has been the joy of my life … I'm certain that the dead are standing around you and saluting you."

She concluded with a message to children everywhere: "No matter where you're from, your dreams are valid."

The Academy Awards are taking place at the Dolby theatre in Los Angeles, and are being hosted by Ellen DeGeneres.

• Xan Brooks liveblogs the ceremony

• Full list of winners as they're announced