I'd translate your condition on $G$ to "every $p'$-element centralizes some $p$-Sylow subgroup". As all $p$-Sylow subgroups are conjugate, this is equivalent to saying that every $p'$-element has a conjugate lying in the centralizer of a fixed $p$-Sylow subgroup $S$.
For finite groups the only subgroup intersecting each conjugacy class is the whole group (see https://mathoverflow.net/questions/26979/generating-a-finite-group-from-elements-in-each-conjugacy-class).
So if you can show that the normalizer $N_G(S)$ contains a conjugate to every element of $G$ that has order a multiple of $p$, you know that $S$ is normal in $G$. Then by Schur-Zassenhaus there exists a $p'$-subgroup $H$ such that $G = S\rtimes H$. But as $H$ centralizes $S$ by the assumptions, the product is direct.
To close the gap, by Sylow's theorem it is enough to show that given an element $x \in G$ of order divisible by $p$ it normalizes some $p$-Sylow subgroup. Write $x = y\cdot z$ with $y$ a $p$-element, $z$ a $p'$-element and $y$ and $z$ commuting (look at $\langle x \rangle$ if you are unsure about the existence of such a decomposition). If $z=1$ then $x$ is contained in some $p$-Sylow subgroup. Otherwise the centralizer of $z$ contains a $p$-Sylow $T$ that wlog contains $y$. As $z$ centralizes $T$ it also normalizes it, and we are done.