He had a point, at least according to the NBA.
The league agreed with James, and announced in their Last Two Minute Report on Tuesday that the officiating crew missed the call.
They ruled that Durant should have been called for a personal foul when he "[made] forearm contact to James...that affects his [speed, quickness, balance, rhythym] at the start of his drive to the basket" with 27 seconds remaining in regulation. Durant also should have been called 1.4 seconds later when he "[made] contact to James'...arm and body that affects his driving shot," according to the NBA.
Durant told reporters on Monday that his defense on the last possession "felt clean." The NBA said that he also should have been called for a personal foul when defending James with 1:12 left in the fourth quarter.
The league's report also determined that James got away with a foul in the final minute. He should have been called for a loose ball foul with 33 seconds remaining after tustling with Draymond Green following an errant three from rookie Jordan Bell, according to the NBA.
That possession immediately preceded the one where the league ruled Durant fouled James twice.
The full report can be read here.