The “Marvel’s Agents of S.H.I.E.L.D.” Season 3 winter finale brought out all the stops. Action, death, emotional reunions, a cliffhanger -- episode 10 had it all. After Coulson (Clark Gregg) followed Ward (Brett Dalton) and Fitz (Iain De Caestecker) to Maveth, they had to find a way home while the team on Earth had to make sure they got back safely. However, with a monster on the lose, the agents weren’t so sure they wanted to open the portal to bring their friends home in the midseason finale.

Finding The Portal: Fitz is working on calculating the portal's location, but he quickly gets fed up with Ward. The scientist tries to grab Ward’s gun, but the evil agent overpowers him. Ward claims he has a greater purpose because of this trip, but Fitz thinks he's just expendable. They stop arguing once they find something that looks like a Hydra symbol in the dirt.

Later, Fitz finds the door that leads to Will’s (Dillon Casey) underground campsite. Will immediately recognizes Fitz. Unfortunately, that also brings Ward to Will. Ward wants to kill the astronaut because he thinks Fitz disobeyed orders. Ward backs off when Fitz claims that Will can help them and Will says that he was attacked by “it,” the monster Hydra wants.

Fitz explains to Will that Ward and the soldiers are Hydra and part of the group that sent him here as a sacrifice over a decade zone. The astronaut develops a plan to lose the agents. Will takes them into what he calls the “no fly zone” and starts snapping necks during a sandstorm.

Meanwhile, Coulson wakes up in bed next to Rosalind (Constance Zimmer), but she tells him that he has to get up. “They need you Phil, more than ever,” she says. He wakes up next to a skeleton on Maveth.

Coulson finally meets up with the group and finds Ward. He has a gun pointed at him and tells him to lead the way to the portal. Ward, of course, takes the opportunity to give a speech. He claims that today has been the first time that he ever felt a purpose, and he never felt satisfied going after revenge alone. Coulson shoots him in the arm to shut him up. The director sees Fitz and Will in his binoculars, and they’re a good distance away. However, there are only 13 minutes until the portal opens again. They need to move quickly.

As Fitz and Will make their way towards the portal, they see the remains of a city. Will says that there were once nine cities, but they feared change and a war destroyed their race. Fitz asks him how he knows this, and Will reveals that he isn’t Will at all. He’s the monster. “Will died saving Jemma from me,” he says.

Fitz and the monster get into a fight. Despite the monster having powers, it’s a physical brawl. While they’re fighting, Ward and Coulson are also having an intense battle. Fitz eventually uses his flare gun to light the monster on fire. He yells to Coulson that they have to go through the portal, but the director refuses to leave the Hydra agent alive. Coulson uses his robotic hand to crush Ward’s chest. He leaves his hand next to Ward’s dead body.

Back On Earth: Bobbi (Adrianne Palicki) explains that all they have to do to save Coulson is overtake the castle and open the portal. It’s harder than it sounds, but she thinks it’s doable. However, Daisy (Chloe Bennet) reveals that trucks have just arrived carrying Inhumans in stasis gel. This essentially ruins their plan. They can’t just attack, and they don’t know how to save everyone. Mack (Henry Simmons) divides the agents to handle each rescue mission, but it seems like an impossible task.

While Simmons is captured, Malick (Powers Booth) explains that he really doesn’t care if Fitz comes back. “Death is the only thing returning through that portal,” he claims. “Fitz is just an offering to show him the door.”

Outside the castle, Lincoln cuts the power, which gives Simmons an opportunity to make her escape. She finds herself in a room with the pods carrying Inhumans. However, S.H.I.E.L.D.’s containment pod is also in there, and Andrew (Blair Underwood) is still locked up inside.

Andrew convinces her to let him out once guards are on their way in. She opens the door and Lash (Matthew Willig) attacks the agents. Simmons finds May (Ming-Na Wen) and tells her Andrew is out. She offers to find him, but May says that isn’t the mission.

Once S.H.I.E.L.D. has Simmons, everyone goes to the control room to see the portal and barricade the doors. May is gone, and they realize that she must’ve gone back for her ex-husband. She finds the bodies Lash left behind and sees that the Inhumans in other pods are dead. There are no Inhumans to save.

Still, they have to save their friends, but some of them are questioning if the risk is worth it. The team worries about the monster coming through the portal instead of Coulson and Fitz. Lincoln (Luke Mitchell) thinks they should destroy everything.

Hydra starts trying to breakthrough the barricades, Mack decides that everyone has to leave. If the alien comes through, he can’t risk all of his agents dying at once. Daisy stays with him while the team watches via heat signature readings on the plane.

Daisy falls over with a nose bleed and says they’re out of time. Mack gives May the cue to blow up the castle. “Open the doors. I’m bringing them in,” Mack says from a flying containment pod. Mack and Daisy come out with Fitz and Coulson.

Daisy shares a kiss with Lincoln, and Coulson hugs May. Simmons hugs Fitz, but she also breaks down crying. It’s clear that she knows Will is dead. During the celebratory hugs, Fitz and Coulson share a look that seems to indicate they aren’t thrilled with their homecoming.

Ward’s Return: Ward might be dead, but he isn’t gone for good. The “Agents of S.H.I.E.L.D.” midseason finale had to throw in a cliffhanger. Malick sees Ward holding Coulson’s hand in the middle of the road. He is bloody and beaten and a worm seems to be crawling under the skin on his face. Clearly, the monster jumped into Ward’s body.

“Marvel’s Agents of S.H.I.E.L.D.” is on hiatus until March. “Marvel’s Agent Carter” Season 2 will replace it starting Jan. 19.