Joe Pavelski and Joe Thornton scored, Kevin Labanc had two assists and Martin Jones made 22 saves for San Jose (7-4-3), which had lost two straight.
Thornton, who was playing in his third straight game after missing the previous nine with an infection in his surgically repaired right knee, tied it 3-3 at 15:03 of the third period, beating Pickard glove side from the top of the left circle.
It was Thornton's first goal since Jan. 21.
"I feel better," Thornton said. "There are periods I feel great and times not so good. It's starting to come. It's a work in progress."
Said Sharks coach Peter DeBoer, "Great for [Thornton]. Great for him to get one. He's been through an awful lot, worked for months here to get back. I think it's appropriate that he was the guy that got us back in the game. So that was awesome."
Patrick gave the Flyers a 1-0 lead 37 seconds into the first period, converting a tic-tac-toe play from in front on a 3-on-2.
Meier tied it 1-1 at 3:15 with a tap-in off a cross-crease pass from Tomas Hertl.
Weal scored to make it 2-1 at 16:40, but Pavelski scored a power-play goal at 10:35 of the second period to tie it 2-2.
Voracek gave the Flyers a 3-2 lead at 19:30 with a one-timer in the slot on a delayed penalty.
"I really thought we showed up to play," DeBoer said. "Even early in the game. We were down, they got two chances and put them both in. But other than that, I thought through the first and a lot of the second period we were really pushing them and creating some things and putting some pressure on them. It was just one of those games. We stuck with it."