Pangos finished with 11 points for Gonzaga (17-3, 7-1 West Coast Conference) and Przemek Karnowski added 12 points, eight coming late in the second half.
Johnny Dee scored 26 points on 8-of-10 shooting for San Diego (11-10, 2-6). Dennis Kramer added 10 points and seven rebounds. Christopher Anderson, averaging 10.6 points per game, finished with six points and missed a contested 3-pointer at the buzzer.
Pangos ended Gonzaga's 2-minute-plus scoreless streak with an up-and-under layup for a 59-56 lead with 1:27 left.
Gonzaga has now won 33 of the last 35 contests against San Diego.
Kyle Dranginis scored the first five points after the intermission as Gonzaga tried to regain its momentum after allowing San Diego to end the first half on a 7-2 run.
Dee and Chris Sarbaugh scored San Diego's first 11 points of the second half as the Toreros pulled within two.
Gary Bell Jr.'s second basket of the night was a big one, a 3-pointer to push Gonzaga's lead to 47-42.
But San Diego would not go away quietly.
Dee made two 3-pointers in a little under 3 minutes as San Diego inched closer at 54-50. But the crowd got involved at the 7-minute mark after Karnowski's rebound and putback.
Dee made three free throws and Dennis Kramer's layup tied the game at 55-all.
Karnowski scored eight of Gonzaga's 10 points late in the second half, his last giving the Bulldogs at 57-55 lead.
Both teams went cold down the stretch as Gonzaga missed three straight 3-pointers.
Anderson missed a 3-pointer with the shot clock winding down, giving Gonzaga the ball back with 48 seconds left. Pangos wound down the clock for Gonzaga but his 3-point attempt rolled off the rim. San Diego pushed the ball passed midcourt and called a timeout with 8.4 seconds left, down by three.
But Anderson missed another 3-pointer, while trying to draw a foul from Pangos, and the Bulldogs grabbed the rebound and the win.
The first half was close throughout, too.
Dower scored 10 of Gonzaga's first 12 points, including two 3-pointers from straight away. San Diego's defense kept the Toreros in it by not allowing a Gonzaga run of more than five points for the first 10 minutes. Dennis Kramer scored six early points, as San Diego tied it up at 17 after Dee's 3-pointer.
Duda Sanadze's 3-pointer capped an 8-0 run as San Diego took a 22-17 lead. But Gonzaga responded by scoring the next 14 points, with three consecutive baskets inside the paint, 3s by Draninis and David Stockton, and a Karnowski hook shot for a 31-22 lead.
San Diego went nearly 7 minutes without a point. Anderson ended the dry spell after he made three free throws after getting fouled from beyond the arc.
Dee's steal and layup at the buzzer pulled San Diego within 33-29 at halftime.
Bell played 11 minutes in the first half, in his first game action since breaking his right hand against Santa Clara on Dec. 28.
It was a homecoming for two Toreros players who played their high school ball in the Spokane area. Now a redshirt sophomore, Sarbaugh played at Gonzaga Prep in Spokane and was a walk-on at Gonzaga before transferring to North Idaho College. Brett Bailey, a freshman, played at University High in Spokane Valley.