The crime was reported at about 3 a.m. in the 1600 block of Haight Street.
The 19-year-old victim was "hanging out" with three people -- two men around 20 years old and an 18-year-old girl -- when the two men began punching him in the face, then drove away in his silver 2007 four-door Nissan Altima, according to police.
The suspects and car had not been found as of this morning.
The victim suffered swelling around his right eye but refused medical treatment, police said.
Anyone with information about the carjacking is asked to call the Police Department's anonymous tip line at (415) 575-4444 or send a tip by text message to TIP411.