Germany, who are now in real trouble of missing the finals after also losing to Spain, couldn't get things going as star forward Natasha Keller was marked out of the game by the strong England defense.
England may have taken the lead in the first half when Christa Cullen had a corner saved by German goalkeeper Yvonne Frank, but after 38 minutes Richardson flicked home a penalty stroke for England after a corner.
The England team were then able to control the match, with Germany reverting from their traditional structured approach to all-out attack in the dying stages.
The strong running of Katharina Scholz provided Germany's main impetus for attack, as the England midfield continued to pressure the Germans' distribution.
"We expected to win, I was calmer today than the controversial India game," said England coach Danny Kerry.
"Our direct game unsettled the Germans and the team stuck to the plan of defence moving the ball wide. It is the first time we have beaten Germany since 2003, so we're happy."
On the other hand, German coach Markus Weise was disappointed with his team and the umpiring.
"We only created half chances and didn't stick to the game plan," Weise lamented.
"We didn't score against Spain or England, there is a big problem.
"The umpiring here is very inconsistent and constructive play is punished. Ball possession is supposed to be an advantage so skilled teams can play, this is not happening," he added.
Germany now play tournament favourites the Netherlands on Wednesday.
England's win puts them 7 points in front of Germany and three points behind the Netherlands.