The Fortec driver resisted constant pressure from Kevin Magnussen, who appeared to have a slight edge on pace but never recovered from losing two seconds to the race leader with a high-speed off at Turn 11 on lap seven.
Up to that point, Magnussen had closed the gap down to 0.4 seconds, reeling Frijns in after the poleman had streaked off into a comfortable lead with a superb start and opening couple of laps.
Magnussen then chipped away at what had become a 2.4 second lead, getting it down to as low as 1.2 by the start of the final lap. But Frijns didn't put a wheel wrong all race to take his third win of the season.
Behind the two rookies, Jules Bianchi moved into second place in the championship with a lonely race to third.
The Frenchman did just enough to keep Antonio Felix da Costa out of reach, after the Red Bull-backed driver was one of the few frontrunners to pull off an overtaking move when he relegated Arthur Pic to fifth place at Turn 1 on lap nine.
Pic held off Nico Muller for the rest of the race, with Carlos Huertas next up ahead of a slow-starting Marco Sorensen, who lost three places in the first two corners.
At the tail end of the top 10, title contender Sam Bird managed to salvage a point from what has so far been a difficult weekend, pressuring Lucas Foresti into a mistake and slipping through when the DAMS driver locked up at Turn 2.
However, that did little to limit the damage in the title race. Bird is now 29 points behind Frijns, having started the day just five adrift. Bianchi has slipped to 16 behind the Dutchman.