Factual error: While the hospital did sustain some damage during the actual battle at Pearl Harbor, the Japanese forces did not deliberately target or fire upon it. Hospitals are usually avoided in battles as the people within are not in any condition to fight back and it would just be consuming ammunition that would be needed for attacking more practical targets such as enemy aircraft, assault vehicles, weapon repositories, and such.
Factual error: The USS Hornet, a Yorktown-class aircraft carrier launched in 1940, is played by a much more modern Kitty Hawk-class carrier. The B-25s also take off from a steel deck instead of a historically accurate wooden deck.
Factual error: As the RAF aircrew are running for their aircraft during the scramble sequence, one of the Spitfires can be seen showing a serial of 'AR4474' briefly. This is incorrect not only for a wartime Spitfire, but is completely out of sequence for any UK military aircraft. All four flying Spitfires used during filming had similar inaccurate serials. (00:38:20)
Factual error: When Ben Affleck is about to ditch his B-25 in China, and yells that the #1 engine is out, the port engine is shown spinning to a stop, with the propeller already feathered. A perfectly functioning engine would not have its propeller feathered; the pilot would feather it only after the engine stopped, to reduce drag.
Factual error: In the RAF squadron scene, the lined up Spitfires are the wrong mark for the period. For early 1941, the correct mark would have been a mark V. The Spitfires are later, as they have six exhaust outlets per side, and several have four-bladed propellers, neither feature being present on mark V Spitfires.