The visitors were out of sorts for an hour at San Mames and deservedly trailed to Markel Susaeta's first-half goal, but the introduction of substitute Lionel Messi swung the match as he scored one and teed up another for Alexis Sanchez.
And it looked like the points would go back to Barcelona until Herrera popped up to snatch a point for Bilbao.
Although Barca remain the runaway leaders, this result means they cannot seal the title this weekend irrespective of whether Real Madrid win or lose against city rivals Atletico.
Barca were looking to ease the pain of their midweek Champions League humbling at the hands of Bayern Munich, which looks set to cost them a place in next month's European final.
However, they would be doing so without star man Messi, who has been struggling with a hamstring injury and was left on the bench by coach Tito Vilanova.
And the visitors seemed to be missing his influence as Athletic twice came close to scoring in the opening five minutes with shots from Susaeta and Herrera.
The league leaders took time to settle down but their first chance after 16 minutes almost produced the opening goal, with Sanchez striking the post from 20 yards.
Bilbao responded with a free-kick from Susaeta which picked out Mikel San Jose in the area, but goalkeeper Victor Valdes was equal to the defender's header.
However, they took a deserved lead after 27 minutes unsurprisingly through Susaeta, who met a ball into the box from Aritz Aduriz before sweeping home from close range.
The Catalan visitors continued to play some way below their usual high standard and came under pressure once more before half-time, with Carlos Gurpegi heading Oscar De Marcos' cross over the target.
Bilbao resumed after the interval as the dominant force and were unfortunate not to double their lead after 55 minutes when Susaeta, who was proving a thorn in Barca's side, struck the bar with his 18-yard free-kick.
Vilanova decided enough was enough and sent on Messi four minutes later to replace Xavi.
And the Argentinian's arrival provided the lift Barca needed as they responded with three shots in four minutes from Pedro, Sanchez and Cesc Fabregas all of which forced saves from keeper Gorka Iraizoz, who had been a spectator until that point.
However, it was Messi himself who levelled the scores after 67 minutes, latching on to a pass from Thiago before dribbling past three defenders and smashing the ball into the bottom left corner from just inside the area.
Messi was pivotal in their second goal as well, which arrived just three minutes later, when he headed Dani Alves' cross to Sanchez who finished from a few yards out.
It was now Barca who were in control and Messi should have added a third four minutes from time but his free-kick from just outside the area dropped inches wide of the left post.
And that miss paved the way for one final twist, when Herrera snatched an unlikely - but deserved - point by rolling the ball into the net following Susaeta's headed assist.