Goodwillie has also previously played for Dundee United, Raith Rovers, Ross County and Aberdeen, as well as appearing three times for the Scotland national team, scoring once. On 31 December 2005, Goodwillie made his competitive debut for Dundee United, appearing as a late substitute in the defeat to Rangers. On 4 March 2006, in his fifth appearance for United, Goodwillie came off the bench to score a late goal for United against Hibernian at Easter Road.
Goodwillie later signed for Blackburn Rovers on a four-year contract on 3 August 2011. On his arrival at the club manager Steve Kean likened the striker to "a young Wayne Rooney". Goodwillie signed a one-year contract with Aberdeen in July 2014. On 17 July 2014, he made his debut, coming on as a substitute against FC Groningen in the Europa League second qualifying round first leg. On 13 September 2014, he scored his first goal for the Dons in a 2–1 defeat away to Celtic in the Scottish Premiership. On 21 January 2015, having scored five goals establishing himself in the first team, Goodwillie signed another one-year contract keeping him at Pittodrie until the summer of 2016. On 1 February 2016, Goodwillie moved to Ross County on loan until the end of the 2015–16 season.