The 25-year-old has been with the Lions since an initial loan spell from Newcastle United in 2015.
The Northern Ireland international has scored three goals in 34 appearances for Millwall so far this season.
"It was an easy decision. The team, coaching staff and fans have all made me feel at home here. I am excited to be staying," he told the club website.
Millwall winger Shane Ferguson has signed a new deal with the League One club until the summer of 2019.