The scrum-half knocked over a penalty with the last kick of a pulsating half to edge Tigers ahead at the break in front of a sold-out Welford Road.
Tigers had dominated much of the half but found themselves 10-3 down after 23 minutes when Iain Balshaw intercepted Sam Vesty’s pass in midfield and raced away for a try that was converted by Olly Barkley.
But Tigers piled on the pressure for the rest of the half and were rewarded with three Dupuy penalties in the space of nine minutes.
Gloucester ended the half with 14 men after scrum-half Rory Lawson was yellow-carded for a deliberate knock-on 22m out that prevented Tom Croft from a run at the visitors’ line.
Croft was one of four internationals to return to the Tigers line-up. Julian White made his 100th start for the club while Benjamin Kayser and Geordan Murphy were also in the starting line-up after returning from Six Nations duty.
Gloucester made a late change to their line-up when Anthony Allen failed a late fitness test. He was replaced at centre by Henry Trinder with Jordi Pasqualin coming into the replacements.