To have two figures and two captions in the same float, you only need include two figures and two captions in the float. That is all :). See the MWE.
In case that you want to include also a table in a figure environment (or a figure in a table environment), then you can use the caption package ad the \captionof command.
\documentclass[twocolumn]{article}
\usepackage{graphicx,mwe,caption,lipsum}
\begin{document}
\section{Cheking cross-references}
See figures \ref{a} and \ref{b} on the same float in page \pageref{a}. Figure \ref{c} is on page \pageref{c}. (All is correct).
\section{Dummy text}
\lipsum[1-2] % dummy text
\begin{figure}[t] %float with two figures
\centering
\includegraphics[width=.5\linewidth]{example-image-a}
\caption{Image A\label{a}}\bigskip
\includegraphics[width=.5\linewidth]{example-image-b}
\caption{Image B\label{b}}
\end{figure}
\lipsum[3-5]
% float in next page
\begin{figure}[b]
\centering
\includegraphics[width=.5\linewidth]{example-image-16x10}
\caption{Image C\label{c}}
\end{figure}
\lipsum[3-10]
\end{document}

Edit: Spacing with the \vspace*{\floatsep} of Werner's answer it is much more correct than \bigskip.
I case that you want force to figures to stay in the same page but not together (two floats in top and bottom, for example), then you can try to force float position with floats options and/or relaxing floating penalties. Please see:
How to influence the position of float environments like figure and table in LaTeX?
How to use the placement options [t], [h] with figures?