Olympic 400m gold medallist LaShawn Merritt ran down world champion Kirani James to win the 400 in 44.91 seconds.