Hubert, 22, suffered fatal injuries after he crashed and his car was then hit by Ecuadorian-American driver Juan Manuel Correa at Spa-Francorchamps' fast Raidillon corner in the support race.
The FIA said a chain of events led to a complex crash sequence involving four drivers.
Hubert died of "non-survivable trauma" caused by an "extremely high level of energy transferred and dissipated" in three separate impacts.
Correa suffered severe leg injuries and is facing months of physical therapy and rehabilitation after undergoing extensive surgery.
The report declared in summary that:
- There was no single specific cause but multiple contributory factors.
- There was no evidence any driver had failed to react appropriately to flag signals or the circumstances on track.
- The response of marshals and race control was "considered timely and good."
The FIA said the accident sequence lasted 14.6 seconds and started when Giuliano Alesi, son of former racer Jean, spun off backwards into the barriers at the exit to Eau Rouge on lap two.
It found "a reasonable probability" that Alesi's accident was triggered by a loss of pressure of the car's right rear tire.
Ralph Boschung and Hubert took evasive action, the Swiss slowing more abruptly than Hubert who moved further to the right but hit the rear of Boschung's car and lost his front wing.
Traveling at 262kph, Hubert's car hit the barrier at roughly 40 degrees and a speed of 216 kph, generating a peak force of 33.7G. It spun, facing oncoming cars in the run-off area of turn four.
Correa then hit track debris, suffering front-right suspension damage and the loss of his front wing.
The FIA said he hit Hubert's virtually stationary car at 218kph, with an 81G impact that accelerated the Frenchman's car to 105.4kph and into the barriers again.
The FIA said double yellow warning flags were deployed 2.5 seconds after the car-to-car impact, with a red flag following 2.7 seconds later.
The first extrication team arrived within two minutes of the accident.
Hubert was the first driver to die at a Formula One race weekend since Brazilian triple champion Ayrton Senna and Austrian Roland Ratzenberger were killed at Imola in Italy in 1994.
Frenchman Jules Bianchi, who suffered serious head injuries at the Japanese Grand Prix in October 2014, succumbed in July the following year.