Unbeaten Libertad lead Group One with 10 points from four matches and by far the best goal difference. San Martin have six points after two wins and two defeats.
San Martin defender Julio Cesar Moreyra handled a goal-bound shot in the 23rd minute and was sent off with midfielder Sergio Aquino converting the penalty for the only goal.
San Martin's Argentine striker Heber Arriola had a penalty saved eight minutes later, squandering a chance to equalise as the Peruvians failed to avenge their 5-1 defeat by Libertad in Asuncion last week.
Arriola's spot-kick was parried by Libertad goalkeeper Tobias Vargas and midfielder Christian Cueva hit the post from the rebound.
"The wind made things difficult," Vargas told reporters of the match played in the Lima port district of Callao. "It became very tough to play, thank God we had the chance of the penalty."
The top two teams from each of the groups advance to the last 16, the first knockout round of the South American club championship.
Three times champions Nacional of Uruguay spoilt Argentinos Juniors' hopes of putting a foot in the last 16 with a surprise 1-0 away win at the Diego Armando Maradona stadium in Buenos Aires in Group Three.
Nacional scored in the 34th minute when a punt by goalkeeper Leo Burian was headed on and striker Santiago Garcia hustled defender Santiago Gentiletti off the ball to shoot across the face of the goal into the net off the base of the far post.
Argentinos, South American champions in 1985, are still top of the group with seven points from four matches, one more point than Mexico's America who have played three.
Nacional are third with four points and Brazilian champions Fluminense, at home to America next week, have two.
"We believed in ourselves and (that) the good results would come," man of the match Garcia told Fox Sports.
Get the best features, fun and footballing frolics straight to your inbox every week.
Thank you for signing up to Four Four Two. You will receive a verification email shortly.
There was a problem. Please refresh the page and try again.