The Ferrari junior driver came out on top after a race-long duel with race one winner Antonio Felix da Costa in damp conditions, while previous championship leader Robin Frijns struggled to ninth place.
Bianchi led the early laps of the race from pole, but a mistake on lap five allowed da Costa, who had started seventh, to take the lead.
That is how it stayed until the mandatory pitstops, when Bianchi came in a lap earlier than the Red Bull-backed racer and took the lead as da Costa accelerated away from his own stop.
From there Bianchi was able to control the race, managing a lead of around three to four seconds to the chequered flag.
Da Costa was a comfortable second, while Sam Bird gave his own title hopes a boost heading into next month's Barcelona finale with a podium finish.
Nick Yelloly put his wet weather skills to good use again to climb from ninth to fourth, as the likes of Kevin Magnussen, Alexander Rossi and Arthur Pic either spun or got caught up in incidents.
Despite all those top 10 starters hitting trouble, Frijns could still only salvage two points from his second tough race of the weekend.
The Dutchman climbed from eighth to fourth at the start, but he gradually slipped down the order. He fought hard over the final couple of laps to keep Kevin Korjus at bay, but lost out to the Estonian on the final lap.
Bianchi's win means he heads to the Barcelona double-header with a five-point lead over Frijns. Bird is 24 points behind the Frenchman, with 50 still available.
Results - 21 laps:
1. Jules Bianchi Tech 1 46m48.147s
2. Antonio Felix da Costa Arden Caterham + 5.046s
3. Sam Bird ISR + 20.979s
4. Nick Yelloly Comtec + 28.811s
5. Marco Sorensen Lotus + 33.743s
6. Aaro Vainio RFR + 34.130s
7. Nico Muller Draco + 40.480s
8. Kevin Korjus Lotus + 45.436s
9. Robin Frijns Fortec + 48.660s
10. Lucas Foresti DAMS + 51.703s
11. Will Stevens Carlin + 58.890s
12. Walter Grubmuller P1 + 1m01.309s
13. Davide Rigon BVM Target + 1m01.523s
14. Arthur Pic DAMS + 1m02.497s
15. Carlos Huertas Fortec + 1m11.138s
16. Alexander Rossi Arden Caterham + 1m12.616s
17. Mikhail Aleshin RFR + 1m19.746s
18. Daniel Abt Tech 1 + 1m43.544s
19. Yann Cunha Pons + 1m49.989s
20. Jake Rosenzweig ISR + 1 lap
21. Nikolay Martsenko BVM Target + 1 lap
22. Andre Negrao Draco + 1 lap
23. Vittorio Ghirelli Comtec + 1 lap
Kevin Magnussen Carlin 19 laps
Daniil Move P1 19 laps
Zoel Amberg Pons 0 laps
- Robin Frijns
- Kevin Magnussen