Caleb Williams rushed for three touchdowns and passed in another score to help the 6th-ranked Trojans beat the 15th-ranked Fighting Irish, 38-27.