The 29-year-old Irishman, who signed from Barnet in the summer of 2010, was restricted to just eight league starts last season due to a knee injury.
"John wants to have a better year than he had last year and he wants to do it with us," Exeter boss Paul Tisdale told the club's official website.
"I wanted continuity and he's the right type of player for the next part of our building process and he wanted to stay here which says a lot about him.
"He didn't have the most productive year last year based on that injury he had. He was affected for most of last season, but he'll come back fully fit and it's his chance to perform and make up for the lost time."
O'Flynn, who started out at Cork, scored 29 goals in 63 starts for Barnet and struck seven in his first season for the Grecians.