순규(이주승)는 경기도 인근 산에서 혼자 눈을 뜬다. 술에 취해 필름이 끊긴 그는 서울로 오자마자 경찰에 불려가고 그곳엔 다른 친구들이 여고생 실종 사건과 관련하여 취조를 받고 있다. 어릴 적 UFO에 납치된 경험이 있다고 믿는 괴짜 광남(정영기), 까칠한 복학생 진우(박상혁), 열렬한 기독교 신자 기쁨(김창환)과 함께 UFO를 찾기 위해 전날 밤부터 야산에서 대기 중이었음을 기억해낸 순규는 자신만이 그날 밤 일이 기억나지 않는다는 사실이 답답하다. 친구들마저 좀처럼 속시원히 이야기해주지 않는 가운데 처음엔 외계인 따위를 믿지 않던 순규도 점점 외계인의 존재에 빠져들고, 잃어버린 기억을 조금씩 짜맞추며 그날의 진실에 접근해간다.
진실은 단순하다. 하지만 때로 진실이란 UFO만큼이나 모호하기도 하다. 진실을 모호하게 만드는 것은 그것을 그렇게 만들고 싶은 사람의 마음 때문이다. <U.F.O.>는 UFO를 믿고 싶어 했던 순진한 소년들이 잔인한 현실과 마주하고 타협해가는 이야기다. 기억을 잃어버린 순규가 기억을 찾아가는 구성으로 진행되는 영화는 가벼운 서스펜스와 미스터리물처럼 포장되어 있지만 실상은 잔혹한 성장에 관한 영화다. ‘우리는 말할 수 없는 것에 대해 침묵해야 한다’는 비트겐슈타인의 거창한 말로 출발하는 영화가 진짜 말할 수 없는 것의 정체를 드러내는 순간 죄가 어떻게 은폐되고, 진실이 어떻게 조작되며, 소년이 어떻게 추악한 어른이 되어가는지를 보여준다. 진실을 밝혀내는 대신 죄의 낙인을 새긴 소년들은 결국 자신들이 거짓의 생산자가 된다. 생각보다 쉽게 예측되는 결말로 인해 반전의 충격은 그리 크지 않지만 미스터리를 풀어나가는 과정 자체의 긴장감이 의외로 촘촘한 덕분에 관객의 흥미를 끝까지 유지시킨다.