Rahm, 24, made six birdies and two bogeys to card a third-round 68 and take a share of the lead heading into the final day. The Spaniard entered the third day already locked with Willett at 11 under, but failed to get the better of the 2016 Masters champion.
Willett matched Rahm at 4 under for the day, carding a birdie on the final hole to stay firmly in the hunt for his first European Tour win this year.
Compatriot Ross Fisher recorded the first ever albatross at Wentworth on the par-4 18th after a stunning back nine, finishing 6 under for the day. Fisher made two bogeys and a double bogey during the first nine holes, but fought back with four consecutive birdies at the turn.
Rose, 39, sat alone in second with one hole to go, having made an eagle at the 17th, before the Englishman took six shot to complete the final hole to card 69 for the day.