Herediano still must play Real Salt Lake in Utah on October 23 in the group finale. Herediano won the first meeting 1-0 and a draw would be enough to clinch a place in the final eight.
First-half goals by Pablo Salazar and Enoc Perez were enough for Herediano, which won for only the second time in five matches, but extended its unbeaten streak at home to 12.
Edwin Aguilar scored Tauro's first goal in the five matches in the Champions League, all losses.
Herediano went ahead in the eighth minute on a penalty by Salazar, who converted after Tauro defender Eduardo Dasent played a bounding ball into the penalty area with his upper right arm.
The goal appeared to enliven Tauro, which generated four corners in the next 11 minutes and finally converted from a goalmouth scramble.
Marcos Sanchez curled an in-swinging ball from the left. Herediano midfielder Marvin Obando was able to block one shot off the line, but the ball bounded in the goal box before Aguilar was able to knock in inside the right post.
The play left Obando with a bloodied forehead from a knee by Tauro's Jose Marmelejo, forcing him momentarily out of the match before he could return with his head wrapped in a bandage.
Herediano then reclaimed the initiative with a pair of corners in the 35th minute, and retook the lead in the 37th. After Elias Aguilar drew a foul from Perez 25 meters from goal, Marvin Angulo drove a free kick that Tauro goalkeeper Vladimir Villarreal could only punch away.
The ball caromed back into the middle of the area where Perez volleyed into a virtually unguarded net.
Herediano consolidated its position in the second half with better possession and the best chance of the 45 minutes, forcing Villarreal into a pair of diving blocks in the 74th.
The result left Tauro winless in its last four, and extended its winless streak away from home to seven with a fourth loss.