The McLaren junior driver had shot away into an early lead after the start, building up a gap of 2.5 seconds before Red Bull-backed da Costa started to chip away at his advantage.
Da Costa was then given a chance to reset the gap when the safety car came out after Nico Muller and Yann Cunha collided at Fagnes.
Magnussen did a good enough job of the restart to hold the position, but from then until the finish the gap was never more than 0.8s.
The closest da Costa came to making a move was at Les Combes on lap 15 of 21, when he had a look to the inside and locked a front wheel just a lap after Magnussen had also had a lock-up at the same corner.
Da Costa drifted away in the laps that followed as an inspired Nigel Melker - who had charged from 10th on the grid to third - sat on the tail of the lead battle waiting for a chance to pounce.
The Portuguese racer considered an attack into the Bus Stop chicane on the final lap but thought better of it, settling for second as DAMS driver Magnussen extended his championship lead with victory.
Behind the top three Arthur Pic took fourth, paying the price for a sluggish restart that allowed Melker to pass him for third.
Marco Sorensen came home fifth thanks to passing Nikolay Martsenko on the restart, while one of the biggest fights on track was between Jazeman Jaafar and Oliver Webb for ninth place.
In the end Jaafar - who fell from third at the start - took the place, while his Carlin team-mate Carlos Huertas pounced on Webb for the final point in the closing stages.
Results - 21 laps:Pos Driver Team Time/Gap 1. Kevin Magnussen DAMS 47m33.742s 2. Antonio Felix da Costa Arden Caterham + 0.647s 3. Nigel Melker Tech 1 + 1.282s 4. Arthur Pic AV + 4.358s 5. Marco Sorensen Lotus + 5.868s 6. Nikolay Martsenko Pons + 6.373s 7. Andre Negrao Draco + 7.555s 8. Daniil Move Comtec + 8.951s 9. Jazeman Jaafar Carlin + 17.604s 10. Carlos Huertas Carlin + 18.019s 11. Christopher Zanella ISR + 18.748s 12. Oliver Webb Fortec + 19.507s 13. Stoffel Vandoorne Fortec + 23.044s 14. Mikhail Aleshin Tech 1 + 25.181s 15. Norman Nato DAMS + 25.799s 16. Pietro Fantin Arden Caterham + 26.316s 17. Matias Laine P1/Strakka + 26.931s 18. Sergey Sirotkin ISR + 27.957s 19. Zoel Amberg Pons + 31.154s 20. Marlon Stockinger Lotus + 31.722s 21. Mihai Marinescu Zeta + 40.513s 22. Lucas Foresti Comtec + 1 lap Retirements: Will Stevens P1/Strakka 16 laps Yann Cunha AV 6 laps Nico Muller Draco 6 laps Carlos Sainz Jr Zeta 1 lap
The 2015 Formula Renault 3.5 season will be notable for being the last with the French company's backing but also produced a worthy champion in Oliver Rowland. PETER MILLS evaluates this year's crop of drivers
Last year's field was extraordinary and hard to match, but the Formula Renault 3.5 grid will still have plenty of talent this season. Glenn Freeman runs through the field ahead of this weekend's season opener
Landing the Fortec seat that took rising star Robin Frijns to the 2012 FR3.5 title was already a good sign for Stoffel Vandoorne. Then McLaren took him under its wing. Peter Mills tells Vandoorne's story so far