Ulvestad started his career in the youth team of SK Herd before signing for hometown club Aalesunds FK in 2008.[1] He made his first team debut for the club in May 2010 at the age of 17, replacing Jonathan Parr as a substitute in a 1–0 win over Volda TI in the Norwegian Football Cup.[1][2] In April 2011, he scored his first goal for the club in a 1–0 win over Sogndal IL.[1] He made his breakthrough to the first team during the 2011 season where he established himself as a regular in the side, also winning the 2011 Norwegian Football Cup in the 2–1 win over SK Brann.[1] During his time with the club he featured in UEFA Europa League qualifiers in 2011 and 2012, however, Aalesund failed to make it to the tournament proper.[3]
At the end of the 2014 season, Ulvestad decided not to renew his contract, and became a free agent. His final game for Aalesund was in November 2014, in the 2–1 win over Sandnes Ulf.[1] In total he made 132 appearances for Aalesund in all competitions scoring 20 goals.[1]
Following his departure from Aalesund, Ulvestad attracted interest from German Bundesliga side Hannover 96, before training with Premier League side Burnley in February 2015.[2] In March 2015, he made the move permanent signing a three-year contract with the club.[4][5]
On 31 August 2016, Ulvestad joined Charlton Athletic on a season long loan.[6] Ulvestad scored his first goal for the club in a 1–1 draw against Port Vale on 18 October 2016.[7]
Ulvestad was first called up for international duty for the under-23 side in November 2011, playing in the 1–1 draw with Turkey.[1] He also made one cap for the under-20 side a year later in October 2012 in a friendly against the Netherlands.[1] He made his debut for the under-21 side in February 2012, replacing Jonas Svensson in a 2–2 friendly draw with Slovenia.[1] His competitive debut came in the 2013 UEFA European Under-21 Championship qualifier against Azerbaijan.[1] He played in two further qualifiers against England and Belgium, but failed to make it into the 23-man squad that qualified for the final tournament.[1] He played in five qualifiers for the 2015 UEFA European Under-21 Championship, however Norway failed to qualify.[1] In total he gained 14 caps for the under-21 side.[1] He made his debut for the senior side in August 2014, replacing Fredrik Gulbrandsen at half time in an international friendly against United Arab Emirates, finishing 0–0 in Stavanger.[9]
^Stenerud, Kristian (27 April 2011). "- Fredrik er stjernen". smp.no (in Norwegian). Sunnmørsposten. Archived from the original on 12 January 2013. Retrieved 31 July 2012.