Connor Heyward scored his second touchdown with 2 minutes left to put No. 11 Michigan State ahead and the Spartans held on to beat Utah State 38-31 on Friday night.