How to prove that $n^d$ is $O(b^n)$ from $n$ is $O(2^n)$, given that $d>0, b>1$?
You cannot directly prove $f(n)^d$ is $O(b^n)$ from the fact that $f(n)$ is $O(2^n)$. For example, $2^n$ is $O(2^n)$, but $(2^n)^d$ is not necessarily $O(b^n)$.

So forget the fact that $n$ is $O(2^n)$. You should prove $n^d$ is $O(b^n)$ directly. 

You may find a correct proof here.