France's BEA authority said pilots had failed to discuss repeated stall warnings and did not have the training to deal with the hazard. Air France rejected the accusation.
BEA called for mandatory training in high-altitude stalling for all pilots.
All 228 people on board the Airbus 330 from Brazil to France were killed.
'No passenger alert'BEA head Jean-Paul Troadec said that "the situation was salvageable" during the flight's final minutes.
Investigators said an account of those minutes, captured on flight recorders, concluded that the crew had failed to "formally identify the loss of altitude" despite an alarm ringing for nearly a minute.
"The first event which triggered it all is the disconnection of the automatic pilot following the loss of the speed indicators, very probably after they were frozen by ice crystals," said Mr Troadec."At this time the pilot should have initiated a procedure known as 'Unreliable IAS (indicated air speed)', a procedure which consists of taking an angle of five degrees, but the angle they took was far superior.
"That is why the plane flew upwards, the plane took a rapid vertical flight of 7,000 feet/minute... The angle they took was too much," Mr Troadec said.
The BEA report said the co-pilots in charge of the plane when the emergency began "had received no high-altitude training for unreliable IAS (indicated air speed) procedure and manual air craft handling".
The report also said that the pilots failed to alert passengers to the crisis as they struggled to regain control.
The authority issued 10 new safety recommendations, including mandatory training for all pilots in France to ensure they could handle a high-altitude stall.
A statement from Air France rejected the BEA's findings, saying that "nothing at this stage can allow the crew's technical competence to be blamed" for the crash.
"The crew on duty showed professionalism and stayed committed until the end to operating the flight. Air France salutes their courage and determination in these extreme conditions," it said.
Flight recorders were found this year"The altitude-loss alarm was activated and deactivated several times, contradicting the real status of the aircraft, which contributed strongly to the crew's difficulty in analysing the situation," Air France said.
Airbus said it welcomed the report and would give full support to the process, so that the industry could "benefit from any lessons to be learnt from this event".
Air France and Airbus are being investigated for alleged manslaughter in connection with the crash.
"The BEA establishes the facts and makes recommendations based on those facts," AFP quoted Environment and Transport Minister Nathalie Kosciusko-Morizet as saying on RTL radio.
"As to who is responsible, that is up to the courts," she added.
Flight AF 447 went down on 1 June 2009 after running into an intense high-altitude thunderstorm, four hours into a flight from Rio de Janeiro in Brazil to Paris.
The wreckage of the plane was discovered after a long search of 10,000 sq km (3,860 sq miles) of sea floor.
1. 0135 GMT: The crew informs the controller of the flight's location
2. 0159-0206 GMT: The co-pilot warns of turbulence ahead before the captain leaves the cockpit for a rest break
3. 0208 GMT: The plane turns left, diverting from the planned route. Turbulence increases
4. 0210 GMT: The auto-pilot and auto-thrust mechanisms disengage. The plane rolls to the right. The co-pilot attempts to raise the nose. The stall warning sounds twice and the plane's speed drops. The co-pilot calls the captain
5. 0210 GMT: The stall warning sounds again. The plane climbs to 38,000ft
6. 0211-0213 GMT: The captain re-enters the cockpit. The plane is flying at 35,000 ft but is descending 10,000 ft per minute. The co-pilot says "I don't have any more indications", pulls the nose down and the stall warning sounds again
After location 6. 02:14 GMT: Recordings stop
Source: BEA. Note: Last known position = last known position before the plane's "black boxes" were retrieved