Clive Griffiths’s side went behind to an early Jack Arnott try but their pack soon started its rhythm and it was no surprise when prolific flanker Latu Makaafi crashed over from a driving maul, Cornish having been warned for conceding three successive penalties.
Doncaster created plenty of chances but poor execution saw them disappear and they were grateful eventually for Dec Cusack’s penalty just before half-time for giving them an 8-5 interval lead.
Playing into the wind in the second period, the South Yorkshire club knew they would come under intense pressure from Cornish.
However, sustained defence saw them escape with their line protected. Instead, it was the visitors who charged upfield and when Makaafi edged ever closer, scrum-half Michael Heaney darted in from the base of a ruck, Cusack converting.
Cusack added two penalties to lead 21-5 on the hour but Cornish responded via hooker Jack Innard’s converted try. But a clever line-out set up position for captain Michael Hills to feed Jon Phelan for Doncaster’s third try, the hosts earning a bonus point when Hallett converted Tyler Gendall’s injury-time try.
Doncaster travel down to London Scottish on Saturday with just five league games remaining.
Cornish Pirates: May; Arnott, Hendrickson, Dancer (James 70), Evans; Hallett, Day (Oulton 70); Walker (Jamieson 63), Channon (Innard 55), Paver (Gendall 63), Graulich, Beukeboom (Garratt 55), Cheesman, Simmons, Carpenter (Bolwell 55).
Doncaster Knights: Cusack; Bulumakau, Catchpole, Hurrell (Armitage 75), Lewis; Humberstone, Heaney (Field 75); List (John 60), Hunter (Stagg 75), Quigley (Sproston 75), Challinor, Phelan (Young 75), Makaafi (Owen 70), Hills, Shaw.