Free-agent left-hander Javier Lopez has finalized his $13 million, three-year contract to stay with the San Francisco Giants.