American rider Brandon McNulty held off a chasing group to win the 273.4-kilometre world championship road race in Montreal, finishing 13 seconds ahead of Michael Matthews.