Ekici's first goal in the 34th minute was cancelled out by Ibrahima Traore in the 50th minute.
But Aaron Hunt restored Bremen's lead before Ekici added his second in the 74th and Kevin de Bruyne sealed maters in in stoppage time.
The result boosted the visitors' hopes of qualifying for the Europa League, lifting them three points clear of Stuttgart after inflicting a fifth straight loss on the hosts.
Stuttgart had the first chance of the game after two minutes but Gotoku Sakai's shot went just over the bar.
The visitors went close in the 24th minute when De Bruyne unleashed a fierce drive which struck the left post - the 11th time this season that Bremen have hit the woodwork.
Eljero Elia had the next Bremen opportunity on the half-hour mark but the Dutchman's shot flew narrowly wide.
Bremen deservedly took the lead in the 34th minute, though, when De Bruyne's blast was deflected into the goal by Ekici.
Stuttgart had two chances to equalise before the break but Bremen goalkeeper Sebastian Mielitz stopped Martin Harnik's header in the 42nd minute and Harnik headed over the bar on the stroke of half-time.
The leveller did arrive five minutes after the restart, when Christian Gentner's attempt was blocked by the Bremen defence and Traore ran onto the loose ball and lashed home.
Bremen regained the lead on the hour, however. Nils Petersen snatched possession from William Kvist in midfield and fed Hunt, who slotted the ball into the bottom-left corner from 15 yards.
The visitors made it 3-1 in the 74th minute from a neat set-piece, Ekici curling his free-kick into the top-right corner.
De Bruyne joined the party two minutes into stoppage time with a looping shot over Stuttgart keeper Sven Ulreich.