The small quake hit at 2326 GMT about 10 miles south of San Pedro, at a depth of 0.7 miles, according to the US Geological Survey.
"Felt much stronger than a 3.9," Chris DuRee, who was near downtown Long Beach, told KTLA television.
"Rattled softly and then a few strong rolls. No damage anywhere.