From what I understand, GPS receivers synchronize their clocks with those of the satellites; triangulation occurs by comparing the timestamps of three or more sattelites. The deviation, times the speed of light or something, gives the receiver a pretty good indication of how far each satellite is. That should be enough to determine a location.
That's the basic idea, but note that it takes four satellites, not just three, because you're fixing your position in four dimensions (three space, plus time). If you had an extremely accurate clock locally then you could get away with just three, but without knowing the precise time, you need an extra satellite to fix time as well as space. Basically, GPS doesn't give you distance to the satellites, but the differences in the distances to different satellites. The signal from one satellite gives you nothing much, two satellites fixes your position on a hyperboloid, three satellites fixes your position on a curve, and four fixes you to a point.