The result was a hammer blow to Feyenoord's hopes of getting beyond the group stage of the Champions League with no points from their first three games.
The Dutch champions looked set to turn the tide of a miserable start to the season when Steven Berghuis put them ahead after just seven minutes at De Kuip, but the nervous defending that has typified their campaign so far was exploited by Paulo Fonseca's attack-minded side.
Brazilian pair Fred and Bernard combined for the equaliser, the latter out-pacing Feyenoord's defence and rounding Jones before scoring, and he struck again after 54 minutes when he netted the winner with a header.
Shakhtar's Yaroslav Rakitskiy was sent off in the closing stages but Feyenoord failed to capitalise and, with no points from their three Group F games this season, they have now lost their last 10 games in the competition - their last win came against Newcastle United in 2002.
Shakhtar, meanwhile, look set to provide group favourites Manchester City and Napoli with stiff competition, having taken two wins from their opening trio of games and showing a relentless desire to attack, no matter the opposition.
Jean-Paul Boetius wasted a chance to put Feyenoord ahead inside the first minute when he half-volleyed Berghuis' cross over the bar, before Nicolai Jorgensen rifled a shot through legs of Ivan Ordets and wide of the target a minute later.
Berghuis made no mistake when Shakhtar goalkeeper Andriy Pyatov parried Tonny Vilhena's thunderbolt into his path, heading the rebound into the unguarded net to make it 1-0 with seven minutes played.
Undeterred, Shakhtar employed their customary brand of attacking football and were rewarded for their bravery after 24 minutes when Fred intercepted a loose ball and aimed a low pass forward for Bernard to chase, and the winger rounded Jones before drilling the ball into the net.
The visitors were in full flow and found the net again when Marlos chipped a delightful pass into the area for Facundo Ferreyra to side-foot past Jones, but the offside flag was raised.
Sloppy defending early in the second half allowed Feyenoord the chance to regain the lead but Pyatov was alert to the danger, clearing the ball away from the feet of the on-rushing Jorgensen after 50 minutes, and Shakhtar then went on the attack.
A sublime pass from Marlos set Bogdan Butko free down the right flank and his cross reached the far post where Bernard was waiting to crash a header into the net, beyond Jones.
Giovanni van Bronckhorst sent on Jens Toornstra and Sam Larsson to inject some energy into Feyenoord in the last half hour, and the home crowd was buoyed further when Rakitskiy hauled down Toornstra and was sent off for his second bookable offence.
Feyenoord piled men forward in the hope of grabbing a late equaliser but Shakhtar frustrated their hosts with their impressively composed passing play, and Marlos went close to making it 3-1 when he chipped over the bar from close range after a late, mazy dribble.
The last word went to Pyatov, who stayed sharp right up until the 93rd minute when he made a brilliant reaction save to deny substitute Michiel Kramer an equaliser when he powered a header towards goal from close range.