Brentford spoil Gillingham's Christmas, stealing the points in a keenly contested encounter at krbs Priestfield.
With Andy Barcham still nursing a knee injury and Matt Fry suspended Mark Stimson kept faith with the side that beat Stockport 3-1 last weekend, Josh Gowling being the only addition, replacing Fry in defence.
The first opening of the half came with ten minutes on the clock. Febian Brandy showing good persistance to shrug off a clear foul on the edge of the box before drawing a save with a low drive to keeper Price's left.
On 19 minutes Brandy pounced on Oli's through ball and was unlucky not to open the scoring with a snap shot that was well saved by Price.
Gillingham enjoyed the balance of play but struggled to break down a resolute Bees back four, Barry Fuller the next to go close with a 37th minute free kick that curled narrowly wide of Price's left hand upright.
The visitors best opening came soon after with David Hunt sending a curling free-kick into the area but none of the Brentford forwards could apply the telling finish.
Three minutes before the break Brentford took the lead against the run of play Myles Weston's left wing cross, was flicked on by MacDonald for Ben Strevens to force in from close range.
In added time at the end of the first half Strevens had the chance to double his tally but he ballooned Hunt's free-kick over the cross bar.
Gillingham's task was made all the harder five minutes into the second half as Josh Gowling was red carded for collecting a second booking following a challenge on MacDonald.
Stimson sent on Tom Wynter to make his senior debut in defence, John Nutter the man unfortunate to make way.
Despite their man advantage The Bees seemed content with their one goal lead, Sam Saunders drawing a rare save from Julian with a low 63rd minute strike.
The referee evened up the sides moments later, red-carding Charlie MacDonald for a rash challenge on Tom Wynter.
That woke the Rainham End from their slumbers and triggered a surge of pressure from the Gills, Curtis Weston coming close to equalising with a 68th minute chip that was cleared off the line.
Chris Palmer was next to chance his arm with a shot on the turn in the 77th minute that fizzed into the Rainham End
Barry Fuller's late drive was too high to trouble Lewis Price as Brentford hung on to ground out a shock win.
Gillingham: Alan Julian, Barry Fuller, Josh Gowling, Mark Bentley, Chris Palmer (Mark McCammon 90), Dennis Oli, Curtis Weston, Kevin Maher, John Nutter (Tom Wynter 53), Simeon Jackson, Febian Brandy
Subs not used: Simon Locke, Stuart Lewis, Jack Payne, Luke Rooney, Rashid Yussuff.
Brentford: Lewis Price, Kevin O'Connor, Marcus Bean, Charlie MacDonald, Myles Weston, David Hunt (Sam Saunders 46), Danny Foster, Sam Wood, Ben Strevens (Rhys Murphy 90), Pim Balkestein, Leon Legge
(Alan Bennett 74).
Subs not used: Carl Cort, Karleigh Osborne, John Bostock, Simon Moore.