Trojans top Cavaliers, 46-33