The result is a shock to the four-time European champions Toulouse after they also lost to the Welsh side Ospreys in their European Cup contest last Saturday.
It is the first time the team have suffered back-to-back defeats, and their fifth loss in all competitions this season – all away from home.
Former Toulouse player Valentin Courrent found the scoreboard first for Grenoble – and in fact kicked all his side’s points – via an eight-minute penalty.
And though scrum-half Sebastien Bezy equalised for Toulouse two minutes later, Courrent’s skilful boot took the visitors ahead again.
The fly-half managed another two in a row after Bezy levelled again to help Grenoble up 9-6 at half-time, which he extended via two impressive second-half penalties.
The win is Grenoble’s eighth win since returning to the top flight and leaves them in sixth place on 24 points, while Toulouse are 10 points in front in third and level with Castres.
Table-leaders Toulon ground out a 15-9 victory over Agen – good enough to keep their seven-point gap – thanks to Johnny Wilkinson’s four penalties and a drop-goal.
But despite missing three kicks at goal his efforts were enough to outdo South African Conrad Barnard’s hat-trick of penalties for the hosts at Stade Armandie.
Bayonne floored struggling squad Mont de Marsan at home to raise them to ninth position, above Racing Metro who were demolished 31-10 in a one-sided clash with Castres.
Bayonne clinched their 39-13 victory via Guillaume Bernad, Mike Phillips, Manu Ahotaeiloa, Scott Spedding and Sam Gerber, while Benjamin Boyet kicked 14 points.
Stade Francais made an impressive win look easy as they saw off Biarritz 36-23 to leave the two sides level with 28 points each, while James Hook scored 20 points to help Perpignan beat Montpellier 30-19.