Madigan made his senior debut for Leinster in a Celtic League match versus Newport Gwent Dragons in May 2009. He went on to make 18 appearances for Leinster during the season. Madigan broke through to the Heineken Cup squad and came on as a replacement in Leinster's cup final victory against Northampton Saints. The following season he became a regular first XV player and scored five tries in ten matches. He made a superb substitute appearance in the 2012 Heineken Cup final in Twickenham, with his long looping pass to Sean O'Brien enabling him to put Sean Cronin in for the final try. With the departure of Jonathan Sexton to Racing Métro at the start of the 2013-14 season, Madigan was vying with New Zealander Jimmy Gopperth, who joined the province from Newcastle Falcons, for the role of first choice fly-half. Throughout that season the selectors adopted a system of alternation between the two players, with neither individual being considered to have nailed down the number ten jersey.
On 21 March 2014, Madigan made his 100th appearance for Leinster in a league match against Italian side Zebre. The following weekend when Leinster took on Munster, he kicked five penalties and one conversion in a 22-18 win. He scored a winning try in the 2013-14 Pro 12 Semi-Final against Ulster at the RDS Arena. He came on in the 9th minute of the Grand Final for Brian O'Driscoll. Madigan was impressive in the match as Leinster dominated the second half of the match and won it 34-12.
Leinster reached the semi-final of the inaugural European Rugby Champions Cup, being defeated by Toulon 25-20 in extra-time. With seconds remaining in the first half of extra time, Madigan attempted a huge pass which was read and intercepted by Springbok Bryan Habana, who sprinted 50 metres to score a try which effectively put the game beyond Leinster's reach. This loss, coupled with Leinster's failure to get to the play-off stage of the Pro 12 league, ended a woeful season for the Dublin-based province and the effective sacking of head coach Matt O'Connor.
During the 2014-15 season, Madigan started primarily at inside centre, with Gopperth playing at 10. With the departure of Gopperth for London Wasps at the end of the season, he again resumed his role as deputy to Jonny Sexton, who returned after two seasons at Racing Metro. In advance of Sexton's return home to his native province, Madigan stated his desire to play alongside Sexton at inside centre for the coming season.
Madigan made his last appearance in Leinster colours on May 28, 2016, with defeat to Connacht in the 2015-16 Pro 12 final.
In December 2015, it was announced that Madigan would be leaving Leinster at the end of the season to join French Top 14 club Bordeaux Bègles. He made his Top 14 debut for Bordeaux against Racing 92 on 20 August 2016.
On 6 March 2017, Madigan signed a three-year contract with English club Bristol Rugby ahead of the 2017-18 season.
After injury to Jonathan Sexton during the 2013 Six Nations campaign, Madigan was drafted into the Ireland squad as cover at outside half. He made two substitute appearances, against France and Italy. Madigan was included in Ireland's squad for the summer tour of North America in June 2013, where he started both Tests against the US Eagles in Houston and Canada in Toronto.
In the November end of year internationals, he made a further three substitute appearances against Samoa, Australia, and New Zealand; a dramatic encounter in which Ireland were denied an historic first-ever win over the All Blacks in the final minute of the Test match. Madigan was included in the national squad for the 2014 Six Nations, making a 68th-minute substitute appearance in the final match of the campaign against France. Ireland won the game 22-20, securing their first championship title since 2009, and only their second win in Paris in 42 years.
In June 2014, Ireland toured Argentina, playing a two-test series against the Pumas. Madigan made substitute appearances in both matches, scoring a try and a conversion in the second Test in Tucumán to seal victory. Ireland won the series 2-0, and in doing so secured their first ever Test series win in Argentina. He was included in the national squad for the 2014 Autumn internationals series, making a start at fly-half for the Test against Georgia, and two substitute appearances against South Africa and Australia. Ireland won all three Tests, securing their first Autumn series clean-sweep since 2006.
Madigan was involved in the entire 2015 Six Nations, making substitute appearances in all five Tests. Ireland retained their title from the previous year, their 13th triumph in the competition. This was the first time that Ireland had retained their title outright since 1949, having shared the 1983 championship with France after winning in 1982. He celebrated his 26th birthday on the 21st of March, the same day Ireland were crowned northern hemisphere champions.
Madigan appeared in all five of Ireland's 2015 Rugby World Cup games, making a memorable substitute performance in the final pool game against France, when he came on as a replacement for Jonathan Sexton in the 26th minute, and steered Ireland to victory. After Sexton failed to recover from his groin strain in time, Madigan started at 10 the following week in the quarter final meeting against Argentina. Ireland lost the game 43-20, and bowed out of the World Cup at the quarter-final stage for the sixth time.
In May 2016, a 32-man squad was named for a three-Test tour to South Africa in June. Madigan was initially omitted from the travelling squad, the first time he was left out of a national squad since his international debut. His imminent departure to play club rugby in France was cited as a reason for his omission, with the selectors opting instead to select players who remain in Ireland. However, in a turn of fortune, Madigan was included in a revised touring squad on June 2, after Jonathan Sexton suffered a shoulder injury, ruling him out of contention for the tour.
Madigan came off the bench in all three Tests against the Springboks, with Paddy Jackson getting the nod as the starting number ten. Ireland lost the series 2-1, but claimed a historic first win over South Africa on home soil in the first Test in Cape Town.