A proof for the abelian case:
Assume that $p||G|$.
It is enough to show that there exist $g \in G$ s.t. $p|o(g)$.We will use induction on $|G|$.
(*) If ${1}< N < G$ with $p||N|$ or $p||G/N|$ then by the inductive hypothesis we are done. For the latter, exist $g \in G$ s.t. $g^p=n \in N \Rightarrow p|o(g)$.
If there exist ${1} use Lagrange and (*). If not then $|G|=p$ and $G$ is cyclic. In either case we can find $g \in G$ with $p|o(g)$.
A proof for the general case due to James H. McKay:
Assume that $|G|=n$ and $p|n$ prime.
Define $A=\{(a_1,a_2,\ldots,a_p):a_1a_2\cdots a_p=1\}$ and $H=\{\sigma^i:i=1,2,\ldots,p\}$ where $\sigma=(1 \ 2 \ 3 \ \ldots \ p) \in S_p$. Then $|A|=n^{p-1} $ (If you pick $a_1, a_2, \ldots, a_{p-1}$ arbitrary then $a_n$ is fixed) and $|H|=p$. Define the equivalence relation in $A$, $(a_1,a_2,\ldots,a_p)\sim (b_1,b_2,\ldots,b_p) \iff (a_1,a_2,\ldots,a_p)=(b_{h(1)},b_{h(2)},\ldots,b_{h(p)}) \text{ for some } h \in H. $ Observe that the equivalence classes either contain $1$ element (being $(x,x,\ldots ,x)$) or $p$ elements. If we have $r$ equivalent classes with $1$ element ($r\geq 1$ since $(1,1,\ldots , 1)$ is one) and $q$ with $p$ elements then $r+p\cdot q=n^{p-1}.$ So $p|r$ and $r>1$. Therefore exist $x\neq 1$ s.t. $x^p=1.$