The visitors, who could have climbed up to fourth with a victory, were ahead inside 19 minutes when Renan Bardini Bressan collected a cross on the edge of the box before finding the top corner.
Vitoria responded well to enjoy a long spell on top after the opener, and they were back on level terms thanks to Henrique Dourado, who powered home a header from Ernesto Pereira Carneiro's inviting cross.
The game opened up late in the first half as both sides wrestled for control, but poor quality in attacking areas limited the chances on offer.
It was the hosts who took charge to take the lead before the hour mark as Dourado volleyed in from close range after Rio Ave had failed to deal with a free kick.
As the away side started to enjoy long spells on top once again, Vitoria capitalised 14 minutes from time to clinch the points when Alexandre Silva sprinted clear on the break before calmly finding the corner.