Annan led courtesy of goals from Josh Todd and Smart Osadolor in 11 second-half minutes.
But Elgin pulled a goal back through Kyle MacLeod's header before Cameron slotted home from 12 yards after Ben Jago fouled Dylan Easton in the area.
Both teams ended the game with 10 men as Marc McKenzie and Matt Flynn were sent off near the end.
Brian Cameron netted a late penalty as Elgin City came from behind to secure a draw against Annan Athletic.