Last season's beaten UEFA Cup finalists were deservedly ahead at half-time through a Torsten Frings penalty and doubled their lead thanks to Pizarro 10 minutes after the break.
But goals from Felipe Lopes and Rafik Halliche looked like salvaging a point for Nacional, until Pizarro intervened five minutes from time.
After a quiet opening, Aaron Hunt's free-kick after 15 minutes hit the wall and his follow-up effort was also blocked, before Naldo headed the resulting Cleber corner wide.
At the other end, Halliche tried his luck from 30 yards but Tim Wiese held on.
Wiese was again in action just after the half-hour mark, this time turning Edgar's header round the post from Joao Aurelio's corner.
And his opposite number, Rafael Bracali had to save with his feet moments later when Philipp Bargfrede shot from the edge of the box.
Bremen took the lead from the spot eight minutes before the break after Luis Alberto fouled Pizarro following a Clemens Fritz corner.
After the restart, Hunt tested Bracali at one end and Ruben Micael fired over at the other.
But it was 2-0 when Hunt crossed from the left for Pizarro to finish low left-footed from close range.
Bremen pressed for a third, with Marko Marin shooting wide and Tim Borowski's shot from Hunt's cross drawing a good save from Bracali. Naldo then struck the resulting Marin corner over the bar.
And the misses looked to have proved costly as Nacional turned the game on its head.
Bremen were served warning after 67 minutes when Wiese saved a Mateus shot with his feet and a minute later Nacional were on the scoresheet, Felipe heading Micael's cross past the keeper.
Seven minutes later the scores were level as Kevin Amuneke centred for Halliche to finish low.
A shellshocked Bremen managed to react well, with Bracali needing to make saves from Naldo and Per Mertesacker.
But he could do nothing as Pizarro curled a late winner past him from 25 yards.