BYU held on to defeat Saint Mary's 35-26 Saturday in Provo in a game where the Cougars made some key improvements from the teams' earlier meeting, and the Gaels made some key mistakes.