One of the luckiest battles in history for the US.
The Japanese would have brought 6 carriers but the Zuikaku and Shokaku were damaged at the Battle of the Coral Sea a month earlier. The American aircraft went in piecemeal, with the torpedo aircraft going in first and bringing down the CAP zeros. The US sub that was attacked by a Japanese destroyer, which when done had to race back to join the carrier fleet. The destroyer was spotted by the Dauntless dive bombers and led them to the Japanese carriers. The Japanese had ordinance all over the hanger deck because they switched between loading aircraft for bombing Midway and then changed to attacking the US carriers. The strike force was delayed because the Japanese carriers had to evasive maneuver away from US torpedo aircraft attacks so the hangar deck was full of aircraft. I'm sure I'm missing a bunch of other things that helped the US.
(post is archived)