The film - adapted from a short story by Chinese writer Yiyun Li - also earned the best actor prize for Henry O.
Nick Broomfield was named best director for his Iraq war film Battle for Haditha.
Spanish actress Blanca Portillo won the prizefor best actress for her role in Gracia Querejeta's film Seven Billiards Tables. The film also won writing honours for Querejeta, shared with John Sayles for Honeydripper.
The special jury prize went to Hana Makhmalbaf's Buddha Collapsed Out of Shame.The jury was headed by the US author, director and one-time collaborator with Wayne Wang, Paul Auster.
US actor Richard Gere and Swedish actress Liv Ullmann were honoured with Donostia lifetime achievement awards.
AWARDS IN FULL
Golden shell for best film: A Thousand Years of GoodPrayers (Wayne Wang)
Special jury prize: Buddha Collapsed Out of Shame (Hana Makhmalbaf)
Silver shell for best director: Nick Broomfield for Battle for Haditha
Silver shell for best actress:Blanca Portillo for Seven Billiards Tables
Silver shell for best actor: Henry O for A Thousand Years of GoodPrayers
Jury prize for best cinematography: Charlie Lam for Exodus
Jury prize for best screenplay: John Sayles for Honeydripper; Gracia Querejeta for Seven Billiards Tables
Altadis new director's award: Conrad Clarke for Soul Carriage
Horizontes award: El Bano Del Papa (Enrique Fernández/ Cesar Charlone)
TCM Audience Award Caramel (Nadine Labaki)
European Film Award: The Diving Bell And The Butterfly (Julian Schnabel)
Youth Award Caramel (Nadine Labaki)