\minipage works well when used in conjunction with the line width. To prevent overfull hbox's you need to use:
\noindent\begin{minipage}{\linewidth}
content on same page
\end{minipage}
The key is \linewidth. \linewidth is equivalent to the text width (\textwidth) when not in a list. When in a list, \linewidth accounts for the indentation of the list. One other item that may or may not be so obvious is you should have a blank line before the minipage block. If you don't the minipage block will become part of the text it's attached to and cause the overfull hbox. Example:
content 1
\noindent\begin{minipage}{\linewidth}
content on same page
\end{minipage}
content 2
In How make sure two elements stay on the same page? the suggestion was to use \textwidth but that doesn't work when in a list.
samepagebut prevents column breaks in a two-column doc? (I want some chunk to stay in a single column). – Alec Jacobson Sep 04 '15 at 12:56