If you REALLY want to pack them tightly, you can use something like this:
\documentclass{article}
\usepackage{tikz}
\usepackage{varwidth}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{showframe}
\begin{document}
\begin{figure}[tp]
\sbox0{\rule{4cm}{2cm}}% normally use a tikzpicture of unknown size
\sbox1{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{First}
\end{minipage}}%
%
\sbox0{\rule{4cm}{4cm}}%
\sbox2{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Second}
\end{minipage}}%
%
\sbox0{\rule{3cm}{2cm}}%
\sbox3{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Third}
\end{minipage}}%
%
\sbox0{\rule{3cm}{4cm}}%
\sbox4{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Fourth}
\end{minipage}}%
%
\sbox0{\rule{\textwidth}{2cm}}
\sbox5{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Fifth}
\end{minipage}}%
%
\sbox0{\rule{4cm}{2cm}}%
\sbox6{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Sixth}
\end{minipage}}%
%
\centering
\begin{tikzpicture}[inner sep=0pt, outer sep=0.5\columnsep]
\begin{scope}[local bounding box=S1]
\node (A) {\usebox1};
\node[below right] (B) at (A.north east) {\usebox2};
\node[below right] (C) at (B.north east) {\usebox3};
\node[below right] (D) at (C.south west) {\usebox4};
\node[below right] (F) at (A.south west) {\usebox6};
\end{scope}
\node[below] (E) at (S1.south) {\usebox5};
\end{tikzpicture}
\end{figure}
\lipsum[1-6]
\end{document}

I found a simpler and more compact alternative. Here the saveboxes only serve to make shuffling them around easier, and rearrange the caption order.
\documentclass{article}
\usepackage{tikz}
\usepackage{varwidth}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{showframe}
\begin{document}
\begin{figure}[tp]
\sbox0{\rule{4cm}{2cm}}% normally use a tikzpicture of unknown size
\sbox1{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{First}
\end{minipage}}%
%
\sbox0{\rule{4cm}{4cm}}%
\sbox2{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Second}
\end{minipage}}%
%
\sbox0{\rule{3cm}{2cm}}%
\sbox3{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Third}
\end{minipage}}%
%
\sbox0{\rule{3cm}{4cm}}%
\sbox4{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Fourth}
\end{minipage}}%
%
\sbox0{\rule{\textwidth}{2cm}}
\sbox5{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Fifth}
\end{minipage}}%
%
\sbox0{\rule{4cm}{2cm}}%
\sbox6{\begin{minipage}{\wd0}
\usebox0
\captionof{figure}{Sixth}
\end{minipage}}%
%
\centering
\raisebox{-\height}{\usebox1}\hfill
\raisebox{-\height}{\usebox2}\hfill
\raisebox{-\height}{\usebox4}
\raisebox{\dimexpr 0.5\depth-0.5\height}{\usebox3}\hfil
\raisebox{\dimexpr 0.5\depth-0.5\height}{\usebox6};
\usebox5
\end{figure}
\lipsum[1-6]
\end{document}
\captionof{figure}{...}from the caption package – samcarter_is_at_topanswers.xyz Oct 26 '18 at 15:35\begin{center}...\end{center}adds additional vertical space, I would use\centeringinstead. – samcarter_is_at_topanswers.xyz Oct 26 '18 at 15:36\begin{figure}[H]...\end{figure}and then a regular\caption? – Werner Oct 26 '18 at 16:00floatrowpackage might help. – Bernard Oct 26 '18 at 16:43\captionsufficient? – Werner Oct 26 '18 at 17:32Figure 1,Figure 2... Also is\begin{figure}[H]needs the float package, right? – user5402 Oct 26 '18 at 19:35floatpackage for[H]. – Torbjørn T. Oct 26 '18 at 19:41