The Union snapped their two-game losing streak while Vancouver, which saw two players sent off late, had its six-game unbeaten streak broken.
In the 11th minute, Dockal got loose on the right side of the box and fired a shot. But Vancouver goalkeeper Brian Rowe was in good position to make the point-blank save.
Dockal stayed aggressive and broke through with the first goal of the game and a 1-0 Union lead in the 24th minute.
Cristian Techera made a late push for the Whitecaps in the 45th minute as he dribbled in tight and was able to force a corner kick. Techera also took the corner, which was cleared by the Union.
The Whitecaps were fortunate to be trailing 1-0 as they were outshot by the Union 15-0 in the first half. Midfielder Alphonso Davies, who had one goal and three assists in their last game, was taken out at halftime. It was unclear if the 17-year-old Davies had suffered an injury.
Union defender Keegan Rosenberry took a rare shot on goal in the 48th minute and had it saved by Rowe.
Nicolas Mezquida registered Vancouver's first shot of the game in the 54th minute and was stymied by Union goalkeeper Andre Blake.
Union captain Alejandro Bedoya ripped a right-footed shot in the 63rd minute which was deflected over the goal by Rowe.
Dockal gave the Union a 2-0 advantage in the 71st minute with his team-leading fifth goal of the season.
The Union received a penalty kick in the 72nd minute when Cory Burke was fouled in the box by Jose Aja, who was shown a red card. Ilsinho converted the penalty in the 74th minute for a 3-0 lead.
The Whitecaps finished the game with nine players when Yordy Reyna was issued a red card in the fourth minute of stoppage time. Picault netted his penalty kick five minutes into the extra time.
Philadelphia was playing without midfielder Haris Medunjanin, who on Friday was suspended an additional two games for his actions towards the referee in a wild incident against Atlanta on June 2.
The Whitecaps were without defender Kendall Waston, who is with Costa Rica at the World Cup.
Philadelphia 4-0 Vancouver: Union smash Whitecaps - Via MLS
The Philadelphia Union put four goals past a Vancouver Whitecaps side who were reduced to 10 men by the end of the match.