MOSCOW—Russian President Vladimir Putin has admitted that Edward Snowden contacted Russian diplomats in Hong Kong a few days before boarding a plane to Moscow but that no agreement was reached to shelter him and he decided to come to Russia on his own without warning.

Mr. Putin had initially said Mr. Snowden's arrival at Moscow's Sheremetyevo International Airport on June 23 was a "complete surprise," but now acknowledges that he had some prior knowledge that the fugitive former U.S. National Security Agency contractor...