Cannavale was born and raised in Union City, New Jersey, the son of Isabel and Sal Cannavale. His father is of Italian descent, while his mother is Cuban and moved to the U.S. in 1960. He was raised Catholic and attended St. Michael's Catholic School, where he participated in a number of extracurricular activities, including being an altar boy and member of the chorus. When he was eight, Cannavale secured the plum role of the lisping boy, Winthrop, in his school's production of The Music Man, and later played a gangster in Guys and Dolls, which cemented his love for performing. Cannavale's parents divorced when he was 13 and his mother moved the family to Puerto Rico. After two years in the American territory, they settled in Margate, Florida. Cannavale returned to New Jersey after barely eking out a high school diploma in the late 1980s from Coconut Creek High School, in order to be closer to New York, to launch his acting career.
Cannavale began his acting career in the theater – with no acting training – and gained early film roles in Night Falls on Manhattan (1997) and The Bone Collector (1999), Cannavale became well-known when he starred as Bobby Caffey for two seasons on Third Watch. Following this, in 2001, he starred with Alan Arkin in 100 Centre Street – which was written and directed by Sidney Lumet, his then-father-in-law.
In 2002, he joined the cast of Ally McBeal for the last five episodes, but the show was then cancelled. Following this, he starred with Yancey Arias and Sheryl Lee in the miniseries Kingpin. In 2003, Cannavale briefly appeared on the last two episodes of Oz. He also appeared in the film The Station Agent as a man who befriends a little person removed from society. From 2004 to 2006, he had a recurring guest role on Will & Grace as Vince D'Angelo, the boyfriend (and eventual husband) of Will Truman (Eric McCormack). For this role, he won the Primetime Emmy Award for Outstanding Guest Actor in a Comedy Series in 2005. He has also appeared in the films Snakes on a Plane, The Guru (2002), Shall We Dance? (2004) and Romance & Cigarettes (2005), and guest starred in Sex and the City, Six Feet Under, Oz, Law & Order – and its spin-off series Law & Order: Criminal Intent and Law & Order: Special Victims Unit. He appeared in The Take (2007) alongside John Leguizamo and Tyrese Gibson, as Agent Steve Perelli.
Cannavale serves as the voice of Corado R. Ciarlo, known as "Babe", in the Ken Burns PBS film series The War (the story of World War II) from the perspective of the men who fought in combat and their loved ones at home. He also read the audiobook versions of Richard Price's 2008 novel Lush Life and Ed Falco's 2012 novel The Family Corleone. On August 25, 2008, ABC ordered his pilot Cupid, a remake of the 1998 program which had starred Jeremy Piven and Paula Marshall, to series. In the new version of the series, Cannavale starred opposite Sarah Paulson with script development overseen by original series creator Rob Thomas. ABC debuted Cupid on March 31, 2009, but it was cancelled on May 19, 2009.
In 2008, he received a Tony Award nomination for his role as Dennis in the Broadway play, Mauritius. In 2009, CBS announced Cannavale would reprise his role of Det. Eddie Saccardo on the television show, Cold Case, for three episodes, starting with the third episode of Season 7. Cannavale was also in the film Win Win in 2011, as Terry Delfino. He later starred in the Broadway play The Motherfucker With the Hat alongside Chris Rock and Annabella Sciorra. On May 3, 2011 (his 41st birthday), he was nominated for a Tony Award for his leading role in that production.
In 2012 and 2013, he guest starred in the fourth and fifth season of Showtime's Nurse Jackie, for which he was nominated twice again for the Primetime Emmy Award for Outstanding Guest Actor in a Comedy Series in 2012 and 2013, as well as joining the cast of HBO's Boardwalk Empire, portraying the psychopathic Sicilian gangster Gyp Rosetti in the third season. His performance on Boardwalk Empire won critical acclaim, earning him the Primetime Emmy Award for Outstanding Supporting Actor in a Drama Series in 2013. That same year he also played Lewis, a vengeful clown on Modern Family during the third season, for which he was nominated for Best Guest Performer in a Comedy Series at the 2nd Critics' Choice Television Awards in 2012. TV Guide, in its "Cheers & Jeers 2012" issue, praised Cannavale for this "trifecta of great performances", commenting, "This guy is so good at playing bad, it's scary." He played what Matt Zoller Seitz of RogerEbert.com called a "heroically moving" lead role in Danny Collins in 2015.
Since 2015 Cannavale has been involved with voice-over work for Playing On Air, a non-profit organization that “records short plays [for public radio and podcast] written by top playwrights and performed by outstanding actors.” He has starred in three short plays, including Crazy Eights by David Lindsay-Abaire, co-starring Rosie Perez and John Leguizamo; Mere Mortals by David Ives; and 2 Dads by David Auburn.
From 1994 to 2003, Cannavale was married to actress/screenwriter Jenny Lumet — director Sidney Lumet's daughter and performer Lena Horne's granddaughter — with whom he has a son, actor Jake Cannavale. Cannavale and Jake were cast as father and son in season four of Nurse Jackie.
Since fall 2012, Cannavale has been dating actress Rose Byrne. Cannavale and Byrne's first child, Rocco Robin Cannavale, was born on February 1, 2016. He and Byrne are currently expecting their second child.