Boston scores late to beat Canes, 5-3