Richmond took the lead in the first minute via the boot of fullback Rob Kirby and the home side pinned Doncaster deep for the first quarter of an hour.
The Knights finally put 15 phases together to get to the other end but a catch-drive to Matt Challinor couldn’t get the grounding.
A few minutes later and a quick throw-in by Richmond scrum-half Luc Jones to Kirby opened up wing Martin Freeman, who whipped around Knights’ Tyson Lewis to go over.
Despite the penalty count going against them, Doncaster got two tries in four minutes.
On the 28th minute, a scrum-penalty led to a kick to corner and catch-drive try scored by prop Colin Quigley.
Then a great swerve by fullback Charles Foley past Richmond’s centre pair opened up Tyson Lewis to rocket over in the left corner.
At the end of the first-half, a clever box-kick by Jones led to a line-out in Doncaster’s 22, which went awry to Richmond prop Craig Trenier before the home side’s strong carrying forced another penalty kicked over by Kirby.
Doncaster had the edge in the second half, with No 8 Aaron Carpenter dotting down a catch-drive before replacement Thomas James got onto a good break by Foley to cascade through Richmond’s line and get the try-bonus point in the minute he came on.
But the away side couldn’t hold onto their slender lead, and after Richmond were not awarded a try after going over twice due to unclear grounding, it was third-time lucky when Goodrick-Clark squeezed himself over in the 76th minute, ending Doncaster’s five-year unbeaten run at the Athletic Ground.