Jonathan Walters' 43rd minute header had deservedly put Stoke in front but Jürgen Klopp made a double half-time substitution that saw Firmino and Coutinho replace Trent Alexander-Arnold and Ben Woodburn.
The Brazil duo both forced saves from Lee Grant before the hour mark while Dejan Lovren hit the crossbar with a header as Liverpool improved hugely from the first-half in their push for an equaliser.
The visitors eventually levelled on 70 minutes and were ahead by 72 as Coutinho drilled into the bottom corner before Firmino fired over Grant to hand the Reds the advantage.
Simon Mignolet made a sensational save to deny Saido Berahino from close-range, having also magnificently kept out Charlie Adam at 1-0, as the away side held out for a huge three points in their quest for Champions League qualification.
The win means Liverpool stay third, two points ahead of fourth-placed Manchester City who have a game in hand, while Stoke sink to 13th after a fourth straight league defeat.
Stoke and Liverpool both change systems
The team-sheet revealed surprises on both sides, though more so on the visitors' part.
Klopp handed Woodburn a first Premier League start and fellow Academy graduate Alexander-Arnold just his second league start, the two youngsters forcing Firmino and Coutinho - who recovered from illness to make the bench.
The German moved away from his trusted 4-3-3 in favour of a 3-5-2 formation with Joël Matip coming in for Lucas Leiva at the back.
Likewise, home side Stoke changed from the 3-4-2-1 formation they utilised in defeat to Burnley on Tuesday night, opting for a 4-4-2 shape that saw Walters come in for Mame Biram Diouf.
Elsewhere, former Liverpool midfielder Charlie Adam made way for Xherdan Shaqiri to make his first start since January 21, while ex-Red Glen Johnson replaced Marc Muniesa in defence.
Both teams struggle for end product in the first-half
Stoke started brightly and had the ball in the back of the net inside two minutes, only for the returning Shaqiri to see his effort rightly ruled out for offside.
The Potters applied all of the pressure in the first 10 minutes but struggled to threaten Mignolet. Alexander-Arnold did well to block Marko Arnautović's header before the teenager denied Berahino a chance to shoot inside the box by forcing him wide.
Liverpool lacked invention going forward with long balls sent forward for Divock Origi to chase often fruitless.
Woodburn had the chance to run through on goal after dispossessing Geoff Cameron 40 yards out but the 17-year-old slowed his run as he broke forward in possession, allowing Bruno Martins-Indi to scramble back and prevent the Welshman from venturing into the box.
Walters heads Stoke in front before the break
An injury to Joe Allen meant Adam was introduced before the half-hour mark before the game's first shot on target finally came on 28 minutes, Mignolet comfortably collecting Arnautović's low 20-yard shot.
Sections of Stoke supporters thought they had broken the deadlock again soon after, though Arnautović could only volley into the side-netting after Lovren's failed clearance gifted him a chance.
Yet the first goal arrived on 43 minutes through an unmarked Walters at the near post as the Irishman headed in his seventh career goal against Liverpool.
The away side had seen penalty appeals waved away just moments earlier up the other end as Woodburn went down inside the box under the challenge of Erik Pieters, referee Mike Dean's decision not to award a spot-kick leaving Klopp incensed.
Stoke broke forward and Glen Johnson played a one-two with Shaqiri down the right. The Swiss winger latched on to the return pass and broke beyond Ragnar Klavan to get to the by-line and cross into Walters to make it 1-0 from six yards.
Brazil duo inject much-needed spark
Klopp looked to Coutinho and Firmino from the bench at half-time, bringing off youngsters Woodburn and Aleander-Arnold though keeping to the 5-3-2 formation. Nathaniel Clyne moved across to right wing-back with Milner playing on the left, however.
But Stoke should have made it 2-0 before Coutinho and Firmino could even have a telling impact, Mignolet somehow managing to divert Adam's shot from only a couple of yards over his crossbar after Georginio Wijnaldum had headed the wrong way in trying to clear a corner.
Liverpool's half-time changes soon started to have the desired impact. After Origi cut inside and fired wide of the far post, Firmino tested Grant for the first time on the hour.
The goalkeeper was forced to push Firmino's volley drilled into the ground past his post before the following corner was nervously cleared after Lovren had been left free to head towards goal.
Quick-fire goals put Liverpool in front
Moments later, after Clyne got the better of Arnautović down the right, Coutinho saw a low curling attempt tipped wide by Grant as Liverpool's momentum surged. Lovren met Coutinho's delivery but his header crashed the top of the crossbar.
Klopp brought on Daniel Sturridge and within minutes Liverpool finally found themselves level. The Stoke defence failed to deal with Can's lifted ball into the box and it fell for Coutinho to fire into the bottom corner for his third goal in his last three games.
And only two minutes later, Liverpool found themselves in front as Firmino netted his 10th goal of the season in sumptuous style.
Wijnaldum lifted a ball over the top for the Reds' No.11, who let the ball take a solitary bounce before lobbing Grant with a stunning 22-yard outside-of-the-boot strike to reverse the lead in his side's favour.
Stoke could have cancelled out that goal with an equaliser of their own almost immediately, but again Mignolet was on hand to make another miraculous save, pushing Berahino's shot from six yards wide after Arnautović's sweeping low cross across the face of goal.
Mark Hughes' men allowed their tempo to drop in the remaining minutes, meaning Liverpool comfortably saw out a massive win in the top-four race and their first away league win since December.