Injuries cannot be predicted. They are always a risk even with younger players. Look at Josh Beckett and Mark Prior, these guys are much younger than Johnson and they can't stay healthy.
Johnson has been pitching less than 100% most of the year, knowing that the team needed him to soak up innings. For doing that, he is team player who has sacrificed his stats for the good of the team (specifically, saving wear and tear on an overworked bullpen). I am sure he is embarassed to have given up 4 homers in 1 inning, but the fact is he gave the Yankees a lot of innings and did not get bombed out of this game. He is still pitching in the 8th and likely will complete the game. Meaning the bullpen gets a day off.