Dugan had the kicking responsibilities because Gareth Widdop, in his 150th NRL match, left the field injured in the 37th minute and did not return.
Widdop banged his knee with Jack de Belin's knee and it is initially reported Widdop has either a grade one or grade two medial ligament injury which could keep him out for up to 10 weeks.
The Roosters have now won seven of their last nine matches against St George and won for the first time on ANZAC day since 2014.
The home side entered the second half chasing a 6-0 deficit after the Dragons had 59 per cent of possession to dominate the first half field position.
Still trailing 6-4 with 15 minutes left in regulation, Pearce was rewarded for his courage to run hard at the defensive line under the black dot; he received the ball at short notice, lost it on his way to the ground and regathered in time to set up a 10-6 lead.
A Michael Gordon penalty goal in the 75th minute put St George at a significant disadvantage to win, but Macdonald beat four defenders on his 10 metre run through the line out wide in the 78th minute to create Dugan's chance at leveling the scores.
Both teams are tied with the Melbourne Storm at the top of the ladder. Melbourne has the chance to become the outright ladder leader's as they are yet to play their round eight match against the New Zealand Warriors at AAMI Park.
Tim Lafai played his 100th NRL match.
Next week the Roosters travel to New Zealand for a match against the Warriors at Mt Smart Stadium on Sunday afternoon.
The Dragons host the Melbourne Storm at WIN Stadium on Sunday afternoon.