The former Smallville star will play a character named Jack on the fantasy drama, ABC has revealed.
Freeman will debut in the show's February 10 episode 'Tiny', in which the Giant (Jorge Garcia) unleashes his vengeance when a case of mistaken identity leads him to try and settle an old score.
After playing Tess Mercer on Smallville between 2008 and 2011, 30-year-old Freeman has appeared on The Vampire Diaries, CSI: NY and The Playboy Club.
She currently stars in A&E cop drama Longmire, which has been renewed for a second season.
Rena Sofer (Heroes), Lesley Nicol (Downton Abbey) and Rose McGowan (Charmed) all recently signed up for guest roles on Once Upon a Time.
The series airs on Sundays at 8/7c on ABC and will return to Channel 5 in the UK later this year.
> Walking Dead actress Sonequa Martin-Green joins Once Upon a Time
Watch a promo for the next Once Upon a Time episode below: