SAN FRANCISCO -- Derek Holland pitched three-hit ball into the seventh inning to beat his former team, Steven Duggar hit a two-run triple and the San Francisco Giants topped the Texas Rangers 3-1 on Sunday.
Holland, who won 62 games over eight seasons with the Rangers after they drafted him in 2006, was mostly sharp while notching consecutive victories for the first time this season.
The Giants' lefty yielded one run and three walks with four strikeouts, then left to a standing ovation from the crowd.
Four days earlier, Holland (7-8) gained national attention after making a racially insensitive joke while appearing on MLB Network alongside Giants massage therapist Haro Ogawa in a bit that was meant to be fun. Holland later apologized for his comment.
Evan Longoria tripled and scored on a passed ball for San Francisco. The Giants won a home series for the first time since taking two of three from the Chicago Cubs in early July.
Elvis Andrus had an RBI double on his 30th birthday for Texas. The Rangers finished 2-4 on their road trip.
The Giants went ahead in the fourth.
Hunter Pence singled off Yovani Gallardo (7-3) with two outs. After Nick Hundley walked, Duggar lined a 2-2 pitch between center fielder Carlos Tocciand right fielder Nomar Mazara to put San Francisco up 3-1.
Texas stranded runners at second base in the fifth and eighth and left two on in the seventh when Tony Watson got Rougned Odor to hit a soft comebacker.
Mark Melancon retired three batters for his third save.
Rangers: Joey Gallo, who sprained his left ankle in the series opener, was back in the starting lineup after being limited to a pinch-hit appearance on Saturday.
Giants: Buster Posey was placed on the 10-day disabled list, as expected. The six-time All-Star catcher is scheduled to have season-ending hip surgery Monday in Colorado. Aramis Garcia was called up from Triple-A Sacramento.
Rangers: Face the Dodgers and RHP Walker Buehler (6-4, 2.96 ERA) on Tuesday in Texas. Buehler is 2-0 with a 1.07 ERA in his past four starts.