After accidentally stealing from a grocery store due to having trouble with the self-checkouts and causing a scene with one of the workers, recently widowed Ed (Robert De Niro) is visited by his daughter Sally Decker (Uma Thurman), who wants him to move in with her family. Ed does not want to leave his house because he built it himself. Sally convinces Ed to move in with her nonetheless, and gives him her son Peter’s (Oakes Fegley) bedroom. Peter is not happy about giving his room to his grandfather and being moved to the attic. Ed is welcomed by Sally’s husband Arthur (Rob Riggle) and two daughters, Mia (Laura Marano) and Jenny (Poppy Gagnon). During his first day moved in, Ed spends most of his time in his new room, sitting in his chair and looking at the sky, still thinking about his late wife.
Peter then tells his friends Billy (Juliocesar Chavez), Steve (Isaac Kragten) and Emma (T.J. McGibbon) about his grandfather moving in with his family and living in his room. After a miserable first night in his new room, Peter decides to declare war. Ed agrees to war, as long as they follow the agreed upon rules of engagement: they cannot damage other people’s belongings and cannot tell the family about this. Peter pulls a series of pranks, including replacing Ed’s shaving cream with quick-drying foam and damaging his record player. Ed gets back at Peter with pranks including removing the screws from all of Peter’s furniture and rewriting his school report. Ed turns to his friends Danny (Cheech Marin) and Jerry (Christopher Walken) for some advice. Over time, Ed begins to spend time with his granddaughters and son-in-law and learns how to use modern technology, such as self-checkouts and apps.
Sally learns that Mia is dating a boy named Russell (Colin Ford), whom she does not approve of. Ed invites Jerry, Danny, and Diane (Jane Seymour) (a store worker Ed has befriended) to play dodgeball against Peter and his friends. Peter and his friends win the first round, but Ed and his team manage to beat them during the second round. However, during the third round, Danny’s jaw is injured; as a result, the game is declared a tie. Later, Peter pushes the button on Ed’s emergency call necklace, and Ed picks Peter up from school to take him fishing. The two discover that it is illegal to fish there. Ed then takes Peter to his old house and explains that he left some secrets in the walls.
Ed learns that Peter is being bullied, so he, Danny, and Jerry throw the bully in a dumpster. At Jenny’s Christmas-themed birthday party, Peter keeps his promise about not pulling any pranks. Peter rigs up an ejector seat for Ed, who is supposed to be playing the part of Santa that night. Unfortunately, a last-minute change results in Jerry being dressed up as Santa. Throughout the party, Peter and Ed are asked to help out. Instead, they continue to prank each other, including spraying bottles at each other and Peter plugging the cord to the lights as Ed checks them, electrocuting Ed. As a result of their hijinks, they inadvertently reveal their war with each other to everyone. Jerry gets ejected from his chair, resulting in further property damage and injuries to multiple guests. Ed is injured and taken to the hospital.
As punishment, Arthur and Sally place Peter and Mia under “work arrest” for six months. Russell shows up; Sally initially seems angry at him, but instead welcomes him. Sally goes to pick up Ed from the hospital, but learns that he has already checked out and his brother Chuck (Joe Gelchion) has taken him to his old house. Peter decides to make amends, and begs Ed to move back in with the family. The two finally reconcile, as Sally listens. As time passes, Ed and Peter seem to finally be getting along until Ed leaves one day to be with Diane, with whom he is now in a relationship. Peter looks on angrily, declaring a war on both of them as they leave.